yt-dlc
yt-dlc copied to clipboard
[youtube] fix: playlist
Before submitting a pull request make sure you have:
- [x] At least skimmed through adding new extractor tutorial and youtube-dl coding conventions sections
- [x] Searched the bugtracker for similar pull requests
- [x] Checked the code with flake8
In order to be accepted and merged into youtube-dl each piece of code must be in public domain or released under Unlicense. Check one of the following options:
- [x] I am the original author of this code and I am willing to release it under Unlicense
What is the purpose of your pull request?
- [x] Bug fix
- [ ] Improvement
- [ ] New extractor
- [ ] New feature
Fixes #148 Quick hack that needs testing
Ok, so, good new is that it seems to be working with all playlist types. Regular playlist ID: PLszW2az_oxFd7dFeCb1FFhk7c_eEer5n1 Mix playlist ID: RDKR9wGi7gVLQ Search playlist: https://www.youtube.com/results?search_query=linkin+park+numb And channel playlist: https://www.youtube.com/user/TheLinuxFoundation/playlists
There's also a new fix offered here: https://github.com/blackjack4494/yt-dlc/pull/151 Will test it now. Hard to tell which one is best if it also works.
I can confirm that this works at least for normal playlists and channels
Edit: Never mind, I see that it has already been reviewed :)
strange, this commit isn't showing up here. https://github.com/insaneracist/yt-dlc/commit/b2a462a24c217ce8b414a293c6d27bde03a28459
edit: that superfluous commit woke it up.
[youtube:playlist] RDCLAK5uy_m_h-nx7OCFaq9AlyXv78lG0AuloqW_NUA: Downloading page 87
[youtube:playlist] RDCLAK5uy_m_h-nx7OCFaq9AlyXv78lG0AuloqW_NUA: Downloading page 88
[youtube:playlist] RDCLAK5uy_m_h-nx7OCFaq9AlyXv78lG0AuloqW_NUA: Downloading page 89
[youtube:playlist] RDCLAK5uy_m_h-nx7OCFaq9AlyXv78lG0AuloqW_NUA: Downloading page 90
[youtube:playlist] RDCLAK5uy_m_h-nx7OCFaq9AlyXv78lG0AuloqW_NUA: Downloading page 91
[youtube:playlist] RDCLAK5uy_m_h-nx7OCFaq9AlyXv78lG0AuloqW_NUA: Downloading page 92
[youtube:playlist] RDCLAK5uy_m_h-nx7OCFaq9AlyXv78lG0AuloqW_NUA: Downloading page 93
[youtube:playlist] RDCLAK5uy_m_h-nx7OCFaq9AlyXv78lG0AuloqW_NUA: Downloading page 94
[youtube:playlist] RDCLAK5uy_m_h-nx7OCFaq9AlyXv78lG0AuloqW_NUA: Downloading page 95
[youtube:playlist] RDCLAK5uy_m_h-nx7OCFaq9AlyXv78lG0AuloqW_NUA: Downloading page 96
[youtube:playlist] RDCLAK5uy_m_h-nx7OCFaq9AlyXv78lG0AuloqW_NUA: Downloading page 97
[youtube:playlist] RDCLAK5uy_m_h-nx7OCFaq9AlyXv78lG0AuloqW_NUA: Downloading page 98
[youtube:playlist] RDCLAK5uy_m_h-nx7OCFaq9AlyXv78lG0AuloqW_NUA: Downloading page 99
[youtube:playlist] RDCLAK5uy_m_h-nx7OCFaq9AlyXv78lG0AuloqW_NUA: Downloading page 100
[youtube:playlist] RDCLAK5uy_m_h-nx7OCFaq9AlyXv78lG0AuloqW_NUA: Downloading page 101
[youtube:playlist] RDCLAK5uy_m_h-nx7OCFaq9AlyXv78lG0AuloqW_NUA: Downloading page 102
[youtube:playlist] RDCLAK5uy_m_h-nx7OCFaq9AlyXv78lG0AuloqW_NUA: Downloading page 103
it's never ending 🤣
converting this to draft for now.
As it turns out #151 works better. I experienced some issues here.
That does not mean this PR is obsolet.
[youtube:playlist] RDCLAK5uy_m_h-nx7OCFaq9AlyXv78lG0AuloqW_NUA: Downloading page 87 [youtube:playlist] RDCLAK5uy_m_h-nx7OCFaq9AlyXv78lG0AuloqW_NUA: Downloading page 88 [youtube:playlist] RDCLAK5uy_m_h-nx7OCFaq9AlyXv78lG0AuloqW_NUA: Downloading page 89 [youtube:playlist] RDCLAK5uy_m_h-nx7OCFaq9AlyXv78lG0AuloqW_NUA: Downloading page 90 [youtube:playlist] RDCLAK5uy_m_h-nx7OCFaq9AlyXv78lG0AuloqW_NUA: Downloading page 91 [youtube:playlist] RDCLAK5uy_m_h-nx7OCFaq9AlyXv78lG0AuloqW_NUA: Downloading page 92 [youtube:playlist] RDCLAK5uy_m_h-nx7OCFaq9AlyXv78lG0AuloqW_NUA: Downloading page 93 [youtube:playlist] RDCLAK5uy_m_h-nx7OCFaq9AlyXv78lG0AuloqW_NUA: Downloading page 94 [youtube:playlist] RDCLAK5uy_m_h-nx7OCFaq9AlyXv78lG0AuloqW_NUA: Downloading page 95 [youtube:playlist] RDCLAK5uy_m_h-nx7OCFaq9AlyXv78lG0AuloqW_NUA: Downloading page 96 [youtube:playlist] RDCLAK5uy_m_h-nx7OCFaq9AlyXv78lG0AuloqW_NUA: Downloading page 97 [youtube:playlist] RDCLAK5uy_m_h-nx7OCFaq9AlyXv78lG0AuloqW_NUA: Downloading page 98 [youtube:playlist] RDCLAK5uy_m_h-nx7OCFaq9AlyXv78lG0AuloqW_NUA: Downloading page 99 [youtube:playlist] RDCLAK5uy_m_h-nx7OCFaq9AlyXv78lG0AuloqW_NUA: Downloading page 100 [youtube:playlist] RDCLAK5uy_m_h-nx7OCFaq9AlyXv78lG0AuloqW_NUA: Downloading page 101 [youtube:playlist] RDCLAK5uy_m_h-nx7OCFaq9AlyXv78lG0AuloqW_NUA: Downloading page 102 [youtube:playlist] RDCLAK5uy_m_h-nx7OCFaq9AlyXv78lG0AuloqW_NUA: Downloading page 103
it's never ending 🤣
That's because those are mixes playlist they start with a prefix of RD
, UL
and PU
[youtube:playlist] RDCLAK5uy_m_h-nx7OCFaq9AlyXv78lG0AuloqW_NUA: Downloading page 87 [youtube:playlist] RDCLAK5uy_m_h-nx7OCFaq9AlyXv78lG0AuloqW_NUA: Downloading page 88 [youtube:playlist] RDCLAK5uy_m_h-nx7OCFaq9AlyXv78lG0AuloqW_NUA: Downloading page 89 [youtube:playlist] RDCLAK5uy_m_h-nx7OCFaq9AlyXv78lG0AuloqW_NUA: Downloading page 90 [youtube:playlist] RDCLAK5uy_m_h-nx7OCFaq9AlyXv78lG0AuloqW_NUA: Downloading page 91 [youtube:playlist] RDCLAK5uy_m_h-nx7OCFaq9AlyXv78lG0AuloqW_NUA: Downloading page 92 [youtube:playlist] RDCLAK5uy_m_h-nx7OCFaq9AlyXv78lG0AuloqW_NUA: Downloading page 93 [youtube:playlist] RDCLAK5uy_m_h-nx7OCFaq9AlyXv78lG0AuloqW_NUA: Downloading page 94 [youtube:playlist] RDCLAK5uy_m_h-nx7OCFaq9AlyXv78lG0AuloqW_NUA: Downloading page 95 [youtube:playlist] RDCLAK5uy_m_h-nx7OCFaq9AlyXv78lG0AuloqW_NUA: Downloading page 96 [youtube:playlist] RDCLAK5uy_m_h-nx7OCFaq9AlyXv78lG0AuloqW_NUA: Downloading page 97 [youtube:playlist] RDCLAK5uy_m_h-nx7OCFaq9AlyXv78lG0AuloqW_NUA: Downloading page 98 [youtube:playlist] RDCLAK5uy_m_h-nx7OCFaq9AlyXv78lG0AuloqW_NUA: Downloading page 99 [youtube:playlist] RDCLAK5uy_m_h-nx7OCFaq9AlyXv78lG0AuloqW_NUA: Downloading page 100 [youtube:playlist] RDCLAK5uy_m_h-nx7OCFaq9AlyXv78lG0AuloqW_NUA: Downloading page 101 [youtube:playlist] RDCLAK5uy_m_h-nx7OCFaq9AlyXv78lG0AuloqW_NUA: Downloading page 102 [youtube:playlist] RDCLAK5uy_m_h-nx7OCFaq9AlyXv78lG0AuloqW_NUA: Downloading page 103
it's never ending 🤣
it does end actually. Ran 3 tests and results are: 384, 402, 415
Just don't give up on this yet. If implemented like in #151 you will get proper downloading
[youtube:playlist] RDCLAK5uy_m_h-nx7OCFaq9AlyXv78lG0AuloqW_NUA: Downloading webpage
[download] Downloading playlist: RDCLAK5uy_m_h-nx7OCFaq9AlyXv78lG0AuloqW_NUA
[youtube:playlist] RDCLAK5uy_m_h-nx7OCFaq9AlyXv78lG0AuloqW_NUA: Downloading continuation page #1
[youtube:playlist] playlist RDCLAK5uy_m_h-nx7OCFaq9AlyXv78lG0AuloqW_NUA: Downloading 186 videos
[download] Downloading video 1 of 186
As I am super tired, will merge #151 now so that there is at least a working version out there. Will take a look tomorrow again.
@blackjack4494, thanks, i was about to give up. the problem was not sending enough client information, it kept returning the initial piece of the playlist (but only for some types).
@SoneeJohn, the playlists starting with RDCLAK5uy_
are special-cased, the reason is that they are from Youtube Music and have a playlist url.
e.g. https://www.youtube.com/playlist?list=RDCLAK5uy_m_h-nx7OCFaq9AlyXv78lG0AuloqW_NUA
the otherwise dynamically generated RD
mixes can't be accessed that way, and are fetched via video urls (they should be hitting a different function, YoutubePlaylistIE._extract_mix
)
e.g. fails: https://www.youtube.com/playlist?list=RDG8sGmSEehi4
works: https://www.youtube.com/watch?v=G8sGmSEehi4&list=RDG8sGmSEehi4
so what's the state on this one @insaneracist ? Haven't had time yet to look into it but it seems this should handle the missing title and other metadata?