Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Bug]: Plugin Downloader doesnt fetch entire playlist, but exactly 100 tracks, if Playlist has more than 100 tracks #2978

Open
3 of 5 tasks
Shadowphoenix opened this issue Feb 14, 2025 · 6 comments

Comments

@Shadowphoenix
Copy link

Shadowphoenix commented Feb 14, 2025

Preflight Checklist

  • I use the latest version of YouTube Music (Application).
  • I have searched the issue tracker for a bug report that matches the one I want to file, without success.
  • I understand that th-ch/youtube-music has NO affiliation with Google or YouTube

YouTube Music (Application) Version

3.7.2.0

Checklists

What operating system are you using?

Windows

Operating System Version

Win 11 24H2 IoT LTSC - EDIT: Also Tested to happen on a standard Win 10 24H2 Pro Installation

What CPU architecture are you using?

x64

Last Known Working YouTube Music (Application) version

No response

Reproduction steps

Use Plugin "Downloader" to try and Download playlist with more than 100 Tracks.

Expected Behavior

Fetch entire playlist.

If this isnt feasible because the Array or whatever is storing the Information about each track overflows, allow me to select what ID-Range inside the Playlist i want to fetch (i.e. track 1 to 100 or track 75 to 174 etc.) up to a maximum of 100 individual tracks. This way it would still be able only keep 100 tracks in the array while allowing me to easily split the playlist and simply running several download-sequences starting from different IDs.

Actual Behavior

The Dowload-Plugin as is sets a cutoff where it doesnt fetch more than 100 songs of a playlist. It seems to always fetch the first one 100 songs and none beyond that.

This is annoying because everything that isnt in the range of tracks that get downloaded the first time seemingly has to be put in a separate playlist to be dowloaded from there and will never be fetched by the "Download Playlist"-Function from within the first playlist.

This seems to be the case with all Playlists i tested, one only barely exceeding the 100 tracks (102), others being over 500 Tracks long.

Enabled plugins

Downloader
SponsorBlock
Adblock

Additional Information

For convenience of testing and repeatability, here is the link to a playlist by me that is longer (about 240ish tracks). in this example, inbetween "DV & LM vs W&W - Arcade" and "KOKJ - Jungle Vibes" seems to be the cutoffpoint, Jungle Vibes seems never to get fetched.

https://music.youtube.com/playlist?list=PL96lSoe_FOQOm5ygtLe1MSdyirsP8qpfx&si=rFWWAvqMeVnK2ylL

@DeathCamel58
Copy link

I've noticed this issue for a few releases now. This is due to LuanRT/YouTube.js#904

@Shadowphoenix
Copy link
Author

I've noticed this issue for a few releases now. This is due to LuanRT/YouTube.js#904

Guess that means we will have to wait for the nice people involved with YouTube.js to fix it

@Mendungo
Copy link

Same here, also it doesn't even download the playlist. This error pops up

Image

@Shadowphoenix
Copy link
Author

Shadowphoenix commented Feb 20, 2025

Same here, also it doesn't even download the playlist. This error pops up

Seems like a different issue then because for me the download always works. I think it would make sense if you went and dropped the link to the playlist in question so people are able to try and replicate the issue. Maybe it has to do with your playlist in particular but there is no way to verify that without having at least tested it.

@Shadowphoenix
Copy link
Author

Shadowphoenix commented Feb 20, 2025

I've noticed this issue for a few releases now. This is due to LuanRT/YouTube.js#904

As taken from said issue:

read the docs, it returns playlists in pages basically

https://ytjs.dev/api/namespaces/YTNodes/classes/ContinuationItem.html
https://ytjs.dev/api/namespaces/YT/classes/Playlist.html

https://ytjs.dev/api/namespaces/YT/classes/Playlist.html#has-continuation

Maybe someone with more knowledge in js (and programming in general) can give a more exact explanation of whats happening - I could be terribly wrong about this (and hence asked for clarification in the issue linked) - from what i understand this means the Playlist gets split into several small sections (of what i assume 100 Tracks each).
This would in turn mean we have to tell the Downloader what page of the Playlist we want to fetch - which would mean we need to somehow specify what part of the playlist we want to grab. Else it will probably assume "Page 1".

@DeathCamel58
Copy link

Your understanding is correct @Shadowphoenix, note that in the downloader plugin here, this client does check for additional pages of data, then requests a continuation if there is one.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants