Commit Graph

199 Commits

Author SHA1 Message Date
Googolplexed0
8736aca27b add/mirror exception messages for PlayableContentFeeder loading content functions 2025-11-10 22:45:31 -06:00
Googolplexed0
10748b8c5c improved error catching on get_ext_metadata()
reorganize LoadedStream and Metrics definitions for better external referencing
2025-11-10 22:10:54 -06:00
Googolplexed0
3e52743549 Better error handling for load_stream if None passed as track/episode or AudioFile
version bump v0.0.10
2025-11-10 20:51:11 -06:00
Googolplexed0
5882f28213 fix parsing, metadata now returns correctly
fix https://github.com/kokarare1212/librespot-python/issues/321
unfortunately, now AudioKeyManager.get_audio_key() no longer works
2025-11-09 16:09:38 -06:00
Sausa
a403f3eb9a Keep consistent dict type 2025-11-09 16:42:44 +00:00
Sausa
778d8a2b5a Fix 400 errors 2025-11-09 16:25:34 +00:00
Googolplexed0
9481c1c841 have get_metadata_4_track() call new get_ext_metadata()
TODO: parsing a successful response
always returns a 400 response
2025-11-09 03:48:48 -06:00
Googolplexed0
e0070925e2 change all request.headers from dicts to CaseInsensitiveDicts 2025-10-19 17:00:58 -05:00
dakba
e909cfdc76 feat: add FLAC lossless format support and refactor quality pickers (while staying backward compatible)
- Add `FLAC_FLAC` (16), `FLAC_FLAC_24BIT` (22) format codes (based on librespot-org/librespot#796, librespot-org/librespot#1424)
- Regenerate Metadata_pb2.py with protoc 3.20.1
- Add enums: `SuperAudioFormat.FLAC`, `AudioQuality.LOSSLESS`
- Refactor to generic DRY `FormatOnlyAudioQuality` base class while maintaining existing `VorbisOnlyAudioQuality` as wrapper
- Remove `AAC_24_NORM` (replaced by `FLAC_FLAC` at code 16)
2025-10-10 20:08:41 -04:00
dakba
ee2c1107f6 fix(audio/decoders): use audio_format in unknown-format error
- Bug existed since #8
- Resurfaced while adding FLAC
2025-10-10 19:48:08 -04:00
Daniel Moen
87171a3d29 Support Rust librespot credential format in stored_file()
Adds fallback logic to load credentials from Rust librespot's OAuth flow.
The stored_file() method now handles both Python and Rust credential formats.

Related to #277
2025-09-30 18:42:33 +02:00
DraftKinner
2c1721205c Extend use of spclient.wg.spotify.com for album, artist, and show metadata requests 2025-08-24 19:52:27 -04:00
Googolplexed0
5d0784e1c9 rename Identifiers_pb2 to fix https://github.com/Googolplexed0/zotify/issues/58 2025-08-21 20:26:20 -05:00
Googolplexed0
9a7776667f move all login5 logic into TokenProvider
allow for login5 refresh after expiration
2025-08-20 22:36:19 -05:00
Googolplexed0
afc993f047 use login5 authentication instead of keymaster
fixes #306
2025-08-16 22:19:36 -05:00
Matthias Fischer
336fa9acc6 fix: always use spclient.wg.spotify.com for metadata requests 2025-08-06 22:46:25 +02:00
Googolplexed
4f796e640c Accept Incorrectly Capitalized Content-Range Headers
Some external podcast urls return a valid CDN response, which is not accepted due to the "Content-Range" header being all lowercase as "content-range". This tries the lowercase version of the header as a backup if no Content-Range header is found initially.
2025-07-28 18:51:10 -05:00
werwolf2303
53d51156e9 Change method description 2025-06-11 11:42:07 +02:00
werwolf2303
22e6419bc9 Readme and implementation changes
Added optional auth url callback
Removed user pass from readme
Added oauth to readme
2025-06-11 11:30:52 +02:00
werwolf2303
f210850bee Implement oauth support 2025-06-10 21:43:03 +02:00
Christian Vanderwall
a5db002f00 Fix issue with closing session (#200)
I was getting the following error after calling Session.close():

```
Exception in thread session-packet-receiver:
Traceback (most recent call last):
  File "librespot-python/librespot/crypto.py", line 58, in receive_encoded
    header_bytes = self.__receive_cipher.decrypt(connection.read(3))
                                                 ~~~~~~~~~~~~~~~^^^
  File "librespot-python/librespot/core.py", line 1889, in read
    return self.__socket.recv(length)
           ~~~~~~~~~~~~~~~~~~^^^^^^^^
OSError: [Errno 9] Bad file descriptor
```

Adding `OSError` to the try/except in `CipherPair.receive_encoded` fixes this issue, making
`CipherPair` raise a `RuntimeError` instead, which is properly handled by `Receiver`.
2025-03-31 14:58:38 -07:00
碧舞すみほ
f28b51b6e6 fix #267 2024-04-21 09:56:52 +09:00
Liam Harper
7f78bb34d4 Update __init__.py 2023-11-11 21:52:07 +00:00
碧舞すみほ
2bef6c4a5d Update __init__.py 2023-10-28 22:22:44 +09:00
kokarare1212
c8f9026970 fix certificate error 2023-10-28 18:47:44 +09:00
kokarare1212
f97b6b2fe1 add new cdn parsing 2023-10-22 10:41:41 +09:00
Restyled.io
ecd0006874 Restyled by yapf 2023-09-05 09:21:40 +02:00
Restyled.io
12621ef31c Restyled by whitespace 2023-09-05 09:21:40 +02:00
Restyled.io
907634a754 Restyled by reorder-python-imports 2023-09-05 09:21:40 +02:00
Restyled.io
616183a6ca Restyled by pyment 2023-09-05 09:21:40 +02:00
Restyled.io
4241ecb3ab Restyled by isort 2023-09-05 09:21:40 +02:00
Restyled.io
4a6b43ef33 Restyled by black 2023-09-05 09:21:40 +02:00
Restyled.io
20501cdd58 Restyled by autopep8 2023-09-05 09:21:40 +02:00
d.rathmer
04165151d7 fix(apresolve): Better semantics on error 2023-09-05 09:20:43 +02:00
kokarare1212
b57a139fda add ApResolve exception(s) 2023-08-30 08:55:19 +09:00
kokarare1212
d86d5fee6c #195 Add stored function 2023-05-21 18:55:13 +09:00
kokarare1212
4401fa924d Bump version 2023-05-17 06:58:32 +09:00
kokarare1212
9530377a9d Bump client version 2023-05-17 06:57:58 +09:00
kokarare1212
476d53876c bump version 2023-04-13 21:08:37 +09:00
kokarare1212
622483655c Handle ConnectionResetError 2023-04-13 07:01:17 +09:00
kokarare1212
4b768f7c71 #172 Fix album request 2023-01-03 10:22:23 +09:00
kokarare1212
e65f7fc691 #173 Implement PlaylistId 2023-01-03 10:16:51 +09:00
tarak
b455de1477 Update metadata.py 2023-01-02 16:33:02 -05:00
kokarare1212
b6cf657791 Update version 2022-11-10 07:12:05 +09:00
kokarare1212
0db444f3bd #158 ignore BrokenPipe 2022-10-21 07:11:44 +09:00
kokarare1212
14f93dad41 Update version 2022-08-31 06:33:39 +09:00
kokarare1212
a2d631815a #148 Change locking method 2022-08-19 08:58:08 +09:00
kokarare1212
30a8c07300 #141 Release buffer 2022-07-21 19:31:41 +09:00
kokarare1212
0a682993c8 #139 fix base62 issue 2022-07-12 07:42:25 +09:00
kokarare1212
560c5000a8 #135 Set HTTP header 2022-06-29 06:47:04 +09:00