libre-tube / LibreTube

An alternative frontend for YouTube, for Android.
https://libretube.dev
GNU General Public License v3.0
8.68k stars 448 forks source link

Unable to Download Private Playlist with Third-Party Downloaders in LibreTube Nightly Build #6410

Closed akashsriramganapathy closed 2 months ago

akashsriramganapathy commented 2 months ago

In the LibreTube nightly build, attempting to download a playlist using third-party downloaders like Seal and YTDLnis fails. While downloading a single video works fine, trying to download an entire playlist results in an invalid link being passed to the downloader, such as https://www.youtube.com/playlist?list=6. This causes the downloader to throw an error. The stable version handles this smoothly by passing each video link individually to the downloader.

Steps to reproduce

  1. Open LibreTube nightly build.
  2. Attempt to download a playlist using a third-party downloader like Seal or YTDLnis.
  3. Observe the invalid link that is generated and passed to the downloader. Screenshot_20240826-013052_YTDLnis

Expected behavior

The playlist should be processed correctly, and each video's link should be passed individually to the downloader, similar to how it functions in the stable version.

Actual behavior

An invalid link (e.g., https://www.youtube.com/playlist?list=6) is passed to the downloader, causing it to fail.

WARNING: [youtube:tab] HTTP Error 404: Not Found. Retrying (1/3)...
WARNING: [youtube:tab] HTTP Error 404: Not Found. Retrying (2/3)...
WARNING: [youtube:tab] HTTP Error 404: Not Found. Retrying (3/3)...
WARNING: [youtube:tab] Unable to download webpage: HTTP Error 404: Not Found (caused by <HTTPError 404: Not Found>). Giving up after 3 retries
WARNING: [youtube:tab] YouTube said: ERROR - Request contains an invalid argument.
WARNING: [youtube:tab] HTTP Error 400: Bad Request. Retrying (1/3)...
WARNING: [youtube:tab] YouTube said: ERROR - Request contains an invalid argument.
WARNING: [youtube:tab] HTTP Error 400: Bad Request. Retrying (2/3)...
WARNING: [youtube:tab] YouTube said: ERROR - Request contains an invalid argument.
WARNING: [youtube:tab] HTTP Error 400: Bad Request. Retrying (3/3)...
WARNING: [youtube:tab] YouTube said: ERROR - Request contains an invalid argument.
ERROR: [youtube:tab] 6: Unable to download API page: HTTP Error 400: Bad Request (caused by <HTTPError 400: Bad Request>)

LibreTube version

Nightly build version

Android version

Android 14

Other details

This issue does not occur in the stable version of LibreTube, where playlist downloads work correctly with third-party downloaders. Screenshot_20240826-013015_YTDLnis

Acknowledgements

Bnyro commented 2 months ago

The issue you describe is about playlists you created yourself (private ones), not public ones.

We now support the watch_videos route for that (so does youtube), e.g. https://www.youtube.com/watch_videos?video_ids=KEwxr8I4Gl8,OrjM48L-n6I.

Seal doesn't seem to support this, so you should ask them to support it.

akashsriramganapathy commented 2 months ago

For me both publicly available playlist and private playlist before recent release cause issue now it partially fixed still the downloader am using is YTDLnis shows only 50 entries I try to load complete playlist and then tried no lucky I have a private playlist of 191 songs downloader shows 50 entries only and try with public playlist it works well if I clone it to local playlist it cause an error. For your reference I record a screen recording https://github.com/user-attachments/assets/6b7997aa-6f54-4a97-a112-b46c7cf9660a