[GH-ISSUE #9] Unicode error when uploading file #8

Closed
opened 2026-02-27 22:07:30 +03:00 by kerem · 2 comments
Owner

Originally created by @beville on GitHub (Apr 18, 2020).
Original GitHub issue: https://github.com/sigma67/ytmusicapi/issues/9

Here's an error when uploading a file named: 02 ❦ (Ripe & Ruin).mp3. I renamed the file to get rid of the weird character, and it uploaded ok.

I'm not sure if in my code I should have done translation before I passed it to ytmusicapi.

Traceback (most recent call last):
  File "/home/tony/Sync/projects/ytmusic/ytmusic_uploader.py", line 67, in <module>
    main()
  File "/home/tony/Sync/projects/ytmusic/ytmusic_uploader.py", line 53, in main
    status = ytmusic.upload_song(f)
  File "/usr/local/lib/python3.6/dist-packages/ytmusicapi/ytmusic.py", line 458, in upload_song
    response = requests.post(upload_url, data=body, headers=headers)
  File "/usr/local/lib/python3.6/dist-packages/requests/api.py", line 116, in post
    return request('post', url, data=data, json=json, **kwargs)
  File "/usr/local/lib/python3.6/dist-packages/requests/api.py", line 60, in request
    return session.request(method=method, url=url, **kwargs)
  File "/usr/local/lib/python3.6/dist-packages/requests/sessions.py", line 533, in request
    resp = self.send(prep, **send_kwargs)
  File "/usr/local/lib/python3.6/dist-packages/requests/sessions.py", line 646, in send
    r = adapter.send(request, **kwargs)
  File "/usr/local/lib/python3.6/dist-packages/requests/adapters.py", line 449, in send
    timeout=timeout
  File "/usr/local/lib/python3.6/dist-packages/urllib3/connectionpool.py", line 603, in urlopen
    chunked=chunked)
  File "/usr/local/lib/python3.6/dist-packages/urllib3/connectionpool.py", line 355, in _make_request
    conn.request(method, url, **httplib_request_kw)
  File "/usr/lib/python3.6/http/client.py", line 1254, in request
    self._send_request(method, url, body, headers, encode_chunked)
  File "/usr/lib/python3.6/http/client.py", line 1299, in _send_request
    body = _encode(body, 'body')
  File "/usr/lib/python3.6/http/client.py", line 171, in _encode
    (name.title(), data[err.start:err.end], name)) from None
UnicodeEncodeError: 'latin-1' codec can't encode character '\u2766' in position 12: Body ('❦') is not valid Latin-1. Use body.encode('utf-8') if you want to send it encoded in UTF-8
Originally created by @beville on GitHub (Apr 18, 2020). Original GitHub issue: https://github.com/sigma67/ytmusicapi/issues/9 Here's an error when uploading a file named: `02 ❦ (Ripe & Ruin).mp3`. I renamed the file to get rid of the weird character, and it uploaded ok. I'm not sure if in my code I should have done translation before I passed it to ytmusicapi. ``` Traceback (most recent call last): File "/home/tony/Sync/projects/ytmusic/ytmusic_uploader.py", line 67, in <module> main() File "/home/tony/Sync/projects/ytmusic/ytmusic_uploader.py", line 53, in main status = ytmusic.upload_song(f) File "/usr/local/lib/python3.6/dist-packages/ytmusicapi/ytmusic.py", line 458, in upload_song response = requests.post(upload_url, data=body, headers=headers) File "/usr/local/lib/python3.6/dist-packages/requests/api.py", line 116, in post return request('post', url, data=data, json=json, **kwargs) File "/usr/local/lib/python3.6/dist-packages/requests/api.py", line 60, in request return session.request(method=method, url=url, **kwargs) File "/usr/local/lib/python3.6/dist-packages/requests/sessions.py", line 533, in request resp = self.send(prep, **send_kwargs) File "/usr/local/lib/python3.6/dist-packages/requests/sessions.py", line 646, in send r = adapter.send(request, **kwargs) File "/usr/local/lib/python3.6/dist-packages/requests/adapters.py", line 449, in send timeout=timeout File "/usr/local/lib/python3.6/dist-packages/urllib3/connectionpool.py", line 603, in urlopen chunked=chunked) File "/usr/local/lib/python3.6/dist-packages/urllib3/connectionpool.py", line 355, in _make_request conn.request(method, url, **httplib_request_kw) File "/usr/lib/python3.6/http/client.py", line 1254, in request self._send_request(method, url, body, headers, encode_chunked) File "/usr/lib/python3.6/http/client.py", line 1299, in _send_request body = _encode(body, 'body') File "/usr/lib/python3.6/http/client.py", line 171, in _encode (name.title(), data[err.start:err.end], name)) from None UnicodeEncodeError: 'latin-1' codec can't encode character '\u2766' in position 12: Body ('❦') is not valid Latin-1. Use body.encode('utf-8') if you want to send it encoded in UTF-8 ```
kerem closed this issue 2026-02-27 22:07:31 +03:00
Author
Owner

@sigma67 commented on GitHub (Apr 19, 2020):

Hey, what version of the API are you using? This might be the same issue as #5 , which was fixed in v0.6.

Edit: You must be using v0.5.2 judging from the line numbers in the error. Please upgrade to v0.6.

<!-- gh-comment-id:616092165 --> @sigma67 commented on GitHub (Apr 19, 2020): Hey, what version of the API are you using? This might be the same issue as #5 , which was fixed in v0.6. Edit: You must be using v0.5.2 judging from the line numbers in the error. Please upgrade to v0.6.
Author
Owner

@beville commented on GitHub (Apr 19, 2020):

Sorry, my bad, I did have v0.5.2 from a few days back. I upgraded, thanks!

<!-- gh-comment-id:616178153 --> @beville commented on GitHub (Apr 19, 2020): Sorry, my bad, I did have v0.5.2 from a few days back. I upgraded, thanks!
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
starred/ytmusicapi#8
No description provided.