Roderick van Domburg
7921f23927
Improve format handling and support MP3
...
- Switch from `lewton` to `Symphonia`. This is a pure Rust demuxer
and decoder in active development that supports a wide range of
formats, including Ogg Vorbis, MP3, AAC and FLAC for future HiFi
support. At the moment only Ogg Vorbis and MP3 are enabled; all
AAC files are DRM-protected.
- Bump MSRV to 1.51, required for `Symphonia`.
- Filter out all files whose format is not specified.
- Not all episodes seem to be encrypted. If we can't get an audio
key, try and see if we can play the file without decryption.
- After seeking, report the actual position instead of the target.
- Remove the 0xa7 bytes offset from `Subfile`, `Symphonia` does
not balk at Spotify's custom Ogg packet before it. This also
simplifies handling of formats other than Ogg Vorbis.
- When there is no next track to load, signal the UI that the
player has stopped. Before, the player would get stuck in an
infinite reloading loop when there was only one track in the
queue and that track could not be loaded.
2022-01-03 00:13:28 +01:00
Roderick van Domburg
0fdff0d3fd
Follow client setting to filter explicit tracks
...
- Don't load explicit tracks when the client setting forbids them
- When a client switches explicit filtering on *while* playing
an explicit track, immediately skip to the next track
2021-12-30 23:50:28 +01:00
Roderick van Domburg
2af34fc674
Add product metrics to requests
2021-12-30 22:36:38 +01:00
Roderick van Domburg
62461be1fc
Change panics into Result<_, librespot_core::Error>
2021-12-26 21:18:42 +01:00
Roderick van Domburg
2f7b9863d9
Implement CDN for audio files
2021-12-16 22:42:37 +01:00
Roderick van Domburg
9a31aa0362
Pretty-print trace messages
2021-12-11 20:45:08 +01:00
Roderick van Domburg
e748d543e9
Check availability from the catalogue attribute
2021-12-11 20:22:44 +01:00
Roderick van Domburg
40163754bb
Update protobufs to 1.1.73.517
2021-12-10 20:33:43 +01:00
Roderick van Domburg
9b2ca1442e
Move FileId out of SpotifyId
2021-12-08 19:53:45 +01:00
Roderick van Domburg
f03a7e95c1
Merge remote-tracking branch 'librespot-org/dev' into new-api-wip
2021-12-08 19:11:53 +01:00
Roderick van Domburg
87f6a78d3e
Fix examples
2021-12-07 23:52:34 +01:00
Roderick van Domburg
0e2686863a
Major metadata refactoring and enhancement
...
* Expose all fields of recent protobufs
* Add support for user-scoped playlists, user root playlists and
playlist annotations
* Convert messages with the Rust type system
* Attempt to adhere to embargos (tracks and episodes scheduled for
future release)
* Return `Result`s with meaningful errors instead of panicking on
`unwrap`s
* Add foundation for future playlist editing
* Up version in connection handshake to get all version-gated features
2021-12-07 23:22:24 +01:00
Roderick van Domburg
f037a42908
Migrate and expand playlist protos
2021-11-27 11:59:22 +01:00
Roderick van Domburg
d19fd24074
Add spclient and HTTPS support
...
* Change metadata to use spclient
* Add support for HTTPS proxies
* Start purging unwraps and using Result instead
2021-11-26 23:28:37 +01:00
Roderick van Domburg
0e6b1ba9dc
Update version numbers to 0.3.1
2021-10-24 20:12:33 +02:00
Sasha Hilton
6a3377402a
Update version numbers to 0.3.0
2021-10-13 15:10:18 +01:00
Matias
7401d6a96e
Don't panic on local files ( #846 )
...
Skip tracks whose Spotify ID can't be found
2021-09-20 19:20:44 +02:00
Roderick van Domburg
b016b69772
Fix clippy warnings
2021-09-01 21:25:32 +02:00
Roderick van Domburg
9082ffa308
Merge branch 'new-api' into new-api-client
2021-06-25 22:39:21 +02:00
Roderick van Domburg
0703630041
Use PacketType
instead of hex identifiers
2021-06-22 23:57:38 +02:00
Roderick van Domburg
113ac94c07
Update protobufs ( #796 )
...
* Import Spotify 1.1.61.583 (Windows) protobufs
* Import Spotify 1.1.33.569 protobufs missing in 1.1.61.583
* Remove unused protobufs, no longer present in 1.1.61.583
2021-06-19 22:29:48 +02:00
johannesd3
041f084d7f
Fix warnings
2021-05-13 22:42:55 +02:00
johannesd3
1c62af9160
Unpin protobuf version
2021-05-08 22:09:37 +02:00
Sasha Hilton
2ef3928691
Update version numbers to 0.2.0
2021-05-04 13:05:13 +01:00
johannesd3
059b9029de
Remove redundant field names
2021-03-10 22:41:46 +01:00
Evan Cameron
6a33eb4efa
minor cleanup
2021-02-28 21:54:19 -05:00
johannesd3
a6ed6857d2
Clean up dependencies in librespot-metadata
...
* Replaced LinearMap by HashMap
* Removed unnecessary dependencies
* Removed "extern crate"s
2021-02-23 22:22:52 +01:00
johannesd3
678d1777fd
Merge branch 'dev' into tokio_migration
2021-02-23 22:22:49 +01:00
Sasha Hilton
d8c1b491c4
Merge branch 'master' into dev
2021-02-22 00:57:45 +00:00
Sasha Hilton
b7c3609c7b
Update version numbers to 0.1.6
2021-02-22 00:37:28 +00:00
Sasha Hilton
7f705ed148
Merge branch 'master' into dev
2021-02-20 23:31:04 +00:00
Sasha Hilton
2c110ca256
Update version numbers to 0.1.5
2021-02-20 23:05:56 +00:00
johannesd3
424ba3ae25
Migrated metadata crate to futures 0.3
2021-01-25 09:04:33 +01:00
Lyndon Brown
4708e0a2bf
cargo toml formatting fix
...
for consistency
2020-11-26 19:31:51 +00:00
Lyndon Brown
f87cbd6fde
add missing repo links to sub-crate cargo toml files
...
such that links are available from their crates.io pages to the project repo.
2020-11-26 19:30:37 +00:00
Sasha Hilton
45f4276d68
Update version numbers to 0.1.3
2020-07-29 16:23:41 +01:00
Sasha Hilton
68949da7c2
Update version numbers to 0.1.2
2020-07-22 16:53:52 +01:00
Ash
72437bff66
Bump protobuf v2.8.1 -> v~2.14.0 and fix build issues ( #485 )
2020-07-22 12:47:25 +02:00
Konstantin Seiler
5784b4652c
Prepare for gapless play.
...
- change communication between player and spirc to use player events channel.
- enhance player events channel
- have spirc send loading messages to Spotify
- enable preloading of tracks in the player
2020-02-01 08:41:11 +11:00
Sasha Hilton
6daa2acd0a
Update version numbers to 0.1.1
2020-01-30 02:39:41 +01:00
marcelbuesing
c9147d31ab
Turn child crates into rust 2018 edition
2020-01-17 20:54:05 +01:00
marcelbuesing
38d82f2dc2
Rerun rustfmt on full codebase
2020-01-17 18:47:30 +01:00
ashthespy
d26590afc5
Update to Rust 2018
...
- Fix deprecated Error::cause warnings and missing dyn
- Reset max_width
- Add rustfmt to Travis
- Run rustfmt on full codebase
with `cargo fmt --all`
- Add rustfmt to Travis
- Complete migration to edition 2018
- Replace try! shorthand
- Use explicit `dyn Trait`
2020-01-17 18:11:52 +01:00
henenq
3b5f9ac64c
Rebase, fix broken things
2019-12-16 12:47:52 +01:00
henenq
5d2897f6f6
Fixing merge requests
2019-12-16 11:56:34 +01:00
HEnquist
4f0033e81c
Various changes following review
2019-12-16 11:38:46 +01:00
Henrik Enquist
6d8a53e888
Remove forgotten println
2019-12-16 09:57:59 +01:00
HEnquist
65d07579ec
Make standard metadata get handle also playlists
2019-12-16 09:57:59 +01:00
HEnquist
c7c24951d9
Remove unused code from metadata lib
2019-12-16 09:57:59 +01:00
HEnquist
e6295a6f9c
Use new hm endpoint for playlists
2019-12-16 09:57:59 +01:00
HEnquist
9faaaae6d2
Add basic support for playlists
2019-12-16 09:57:59 +01:00
HEnquist
eb9ab4885f
Make standard metadata get handle also playlists
2019-12-16 09:57:59 +01:00
HEnquist
d72eb38d62
Remove unused code from metadata lib
2019-12-16 09:51:43 +01:00
HEnquist
d8fda8f79c
Use new hm endpoint for playlists
2019-12-16 09:51:43 +01:00
HEnquist
5b26529811
Add basic support for playlists
2019-12-16 09:51:43 +01:00
Sasha Hilton
4e1bf7a0db
Add version numbers for all librespot crates
2019-11-06 16:59:40 +01:00
Sasha Hilton
394320c7b7
Add description and license to Cargo.toml for each crate
2019-11-06 16:50:26 +01:00
ashthespy
b96405af82
Make SpotifyId
understand more URI formats
2019-10-30 11:33:17 +01:00
ashthespy
8eb51e9b55
Streamline and refactor Podcast support,
...
<Metadata>
Add publisher to `Show`
Add `ALLOWED` to `PassthroughEnum`
2019-10-30 11:33:17 +01:00
ashthespy
0cb7a3f7c8
WIP: Podcast support
2019-10-30 11:33:17 +01:00
Nick Mavis
c19375c5ca
Fixed nightly conflict with
2019-09-16 15:00:09 -04:00
Tristan Stenner
1ba6e5886a
Restrict protobuf updates
2019-07-30 11:00:02 +02:00
George Hahn
6e280b3c88
Upgrade dependencies
2019-07-17 22:08:15 -05:00
ashthespy
c5fcdfd43c
Upgrade protobuf
to 2.0
and use protoc-rust
to compile proto files
2018-10-03 15:06:44 +02:00
Harold
00e89343fb
Formatting
2018-07-03 13:08:42 +02:00
Sasha Hilton
4fb8c71b0a
Set SpotifyId methods to return Result
2018-02-25 03:04:07 +01:00
awiouy
a427c8316b
metadata.rs is empty
2018-02-13 08:34:52 +01:00
awiouy
edbe00c62b
core API: move StrChunks* to metadata
2018-02-13 08:33:50 +01:00
awiouy
4c2b641cad
core API: move spotify_id to lib.rs
2018-02-13 07:57:28 +01:00
ashthespy
4164717452
Add track duration to Track
metadata
2018-02-06 03:20:21 +01:00
Thomas Bächler
5237203899
Remove usage of deprecated BoxFuture, BoxStream and BoxSink
2018-01-25 23:23:45 +01:00
Jakob
030b318a9c
fix crash for artists without tracks ( closes #103 ) ( #256 )
2017-10-01 05:15:19 +03:00
Paul Lietar
ec8f80df75
Create new librespot-audio crate
2017-08-03 20:37:04 +01:00
Paul Lietar
a51b562487
Create new librespot-metadata crate
2017-08-03 20:11:17 +01:00