mirror of
https://github.com/librespot-org/librespot.git
synced 2026-04-27 08:15:50 +03:00
[GH-ISSUE #309] Migrate to CDN #203
Labels
No labels
A-Alsa
SpotifyAPI
Tokio 1.0
audio
bug
can't reproduce
compilation
dependencies
duplicate
enhancement
good first issue
help wanted
high priority
imported
imported
invalid
new api
pull-request
question
reverse engineering
wiki
wontfix
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
starred/librespot#203
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Originally created by @sashahilton00 on GitHub (Mar 16, 2019).
Original GitHub issue: https://github.com/librespot-org/librespot/issues/309
Originally assigned to: @sashahilton00, @ashthespy on GitHub.
The desktop and mobile clients are increasingly using the CDN to download audio. We should migrate to this to avoid issues in future and speed up load times. Some initial reverse engineering of it has been done, dumping chat logs with findings below. There are still some things that need to be worked out, such as audio chunk decryption via CDN, as it appears to use different decryption when compared to the chunks delivered by mercury according to @devgianlu.
if you carry out further work on reverse engineering the CDN, please note the progress in this issue.
@devgianlu commented on GitHub (Mar 16, 2019):
It is not necessary to download the head file, you can still get the total size from the Content-Range present in every response. This file is very useful to start the playback immediately as it's not encrypted, but still not mandatory.
@devgianlu commented on GitHub (Mar 16, 2019):
@sashahilton00 The encryption method is actually the same, I've dumped everything into a file and it plays fine. I must have done something wrong with the player.