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鈥檒l occasionally send you account related emails.

Already on GitHub? Sign in to your account

[extractor/voot] Fix extractor #7227

Merged
merged 5 commits into from Jun 10, 2023
Merged

[extractor/voot] Fix extractor #7227

merged 5 commits into from Jun 10, 2023

Conversation

bashonly
Copy link
Member

@bashonly bashonly commented Jun 3, 2023

Voot's API almost completely changed; the only thing that didn't need to be rewritten is the series extractor.

Notes about the new version of the site:

  • Geo bypass no longer works
  • It is not possible to watch videos in browser or to access the playback API endpoint without authentication
  • The auth token is not stored in cookies, so users have to pass credentials to yt-dlp with -u/-p or --netrc. Passing cookies will not work with the extractor. Can also authenticate with -u token, similar to the zee5 and sonyliv extractors
  • Any resolution above 480p is now only available as DRM-protected DASH, at least for free accounts (have not tested with a premium account)
  • The old video IDs are no longer available from the API

Closes #6715

Known Resolved issues:

  • master m3u8s have "720p" and "1080p" resolutions, but when downloaded, the formats are actually only 480p. Need to see if these HD resolution HLS formats are available for premium users, or if the extractor should just remove them from formats altogether
    • RESOLUTION: if the m3u8 URL path contains /_definst_/smil:vod/, any format with a resolution above 480p will just be a duplicate 480p format (and higher resolutions are only available with the DRM DASH). However, the m3u8 URLs with /bpkvod/ in their path have true 1080p non-DRM formats available.
Template

Before submitting a pull request make sure you have:

In order to be accepted and merged into yt-dlp each piece of code must be in public domain or released under Unlicense. Check all of the following options that apply:

  • I am the original author of this code and I am willing to release it under Unlicense
  • I am not the original author of this code but it is in public domain or released under Unlicense (provide reliable evidence)

What is the purpose of your pull request?

Copilot Summary

馃 Generated by Copilot at 490291f

Summary

馃啎馃摑馃И

Rewrite the VootIE extractor to improve compatibility and functionality. Use a new base class VootBaseIE that handles common logic and authentication. Support the new URL format that includes the show name and season. Extract more metadata fields such as series, season, episode, and duration. Update and expand the tests to cover the new features.

VootIE reworked
New base, URLs, and API
Fields bloom like spring

Walkthrough

  • Create a new base class VootBaseIE for handling login and token management (link)
  • Update VootIE to inherit from VootBaseIE and match the new URL format (link)
  • Rewrite _real_extract method of VootIE to use the new API endpoints and access token (link)
  • Parse and return relevant fields from the JSON response in info_dict (link)
  • Remove duplicate formats from the format list (link)
  • Update test case for VootIE to reflect the new URL format, id field, and expected fields (link, link)
  • Add more fields to the test case info_dict, such as season, age_limit, and duration (link)
  • Skip the download of the m3u8 format in the test case, since it is not available for some videos (link)

@bashonly bashonly added the site-bug Issue with a specific website label Jun 3, 2023
@bashonly
Copy link
Member Author

bashonly commented Jun 9, 2023

Investigated the 720p+ formats issue further and pushed a fix.

RESOLUTION: if the m3u8 URL path contains /_definst_/smil:vod/, any format with a resolution above 480p will just be a duplicate 480p format (and higher resolutions are only available with the DRM DASH). However, the m3u8 URLs with /bpkvod/ in their path have true 1080p non-DRM formats available.

@bashonly bashonly merged commit 4f7b11c into yt-dlp:master Jun 10, 2023
11 checks passed
aalsuwaidi pushed a commit to aalsuwaidi/yt-dlp that referenced this pull request Apr 21, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
site-bug Issue with a specific website
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Voot "Data not found or Invalid MediaID"
1 participant