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

[extractor/bilibili] Support interactive videos and course videos #8343

Merged
merged 26 commits into from
Nov 19, 2023

Conversation

c-basalt
Copy link
Contributor

@c-basalt c-basalt commented Oct 13, 2023

IMPORTANT: PRs without the template will be CLOSED

Description of your pull request and other information

Add supports for interactive split-path videos. Fixes #6135
Interactive videos are composed of separate sections that can jump to each other via overlay buttons. Each section is a video with a unique cid but not a unique URL like typical ?p=xxx anthology (webpage uses a cookie to access saved progress on server). This PR extract these interactive videos as playlist results.

Add better error hints for patreon-like "supporter-only" videos, login-user-only videos, "shadow" geo-blocked videos, and one testcase each for reference.
Add login hint for empty CC subtitle since the site appears to now hide subtitles from guest visitors.

Add geo-free, premium-free testcases for Bangumi extractors. Fix metainfo extraction glitches in Bangumi extractors.

Add BilibiliCheeseIE and BilibiliCheeseSeasonIE to support course videos.

Add detection of 301 redirects for BiliBiliIE. Fixes #8428

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 ae38877

Summary

✨💰🇨🇳

Added support for Bilibili Cheese, a paid subscription service on Bilibili. Imported BilibiliCheeseIE and BilibiliCheeseSeasonIE from bilibili.py to _extractors.py.

Walkthrough

  • Add support for downloading videos from Bilibili Cheese, a paid subscription service on Bilibili (link, F0L241

@c-basalt c-basalt marked this pull request as ready for review October 15, 2023 23:45
@bashonly bashonly added the site-request Request to support a new website label Oct 21, 2023
Copy link
Member

@bashonly bashonly left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Sorry it took me so long to get around to reviewing this!

I have some questions about _get_divisions() that could probably be answered if you provide an example API response

yt_dlp/extractor/bilibili.py Outdated Show resolved Hide resolved
yt_dlp/extractor/bilibili.py Outdated Show resolved Hide resolved
yt_dlp/extractor/bilibili.py Outdated Show resolved Hide resolved
yt_dlp/extractor/bilibili.py Outdated Show resolved Hide resolved
yt_dlp/extractor/bilibili.py Outdated Show resolved Hide resolved
yt_dlp/extractor/bilibili.py Show resolved Hide resolved
yt_dlp/extractor/bilibili.py Outdated Show resolved Hide resolved
yt_dlp/extractor/bilibili.py Outdated Show resolved Hide resolved
yt_dlp/extractor/bilibili.py Outdated Show resolved Hide resolved
yt_dlp/extractor/bilibili.py Outdated Show resolved Hide resolved
@bashonly bashonly added the pending-fixes PR has had changes requested label Nov 15, 2023
c-basalt and others added 8 commits November 15, 2023 20:15
Co-authored-by: bashonly <88596187+bashonly@users.noreply.github.com>
Co-authored-by: bashonly <88596187+bashonly@users.noreply.github.com>
Co-authored-by: bashonly <88596187+bashonly@users.noreply.github.com>
Co-authored-by: bashonly <88596187+bashonly@users.noreply.github.com>
@c-basalt
Copy link
Contributor Author

c-basalt commented Nov 16, 2023

Adding fix for #8428 here so the testcase can take advantages of patches on BiliBiliBangumiIE.

yt_dlp/extractor/bilibili.py Show resolved Hide resolved
yt_dlp/extractor/bilibili.py Outdated Show resolved Hide resolved
yt_dlp/extractor/bilibili.py Show resolved Hide resolved
yt_dlp/extractor/bilibili.py Show resolved Hide resolved
yt_dlp/extractor/bilibili.py Show resolved Hide resolved
Co-authored-by: bashonly <88596187+bashonly@users.noreply.github.com>
yt_dlp/extractor/bilibili.py Outdated Show resolved Hide resolved
@bashonly bashonly added pending-review PR needs a review and removed pending-fixes PR has had changes requested labels Nov 19, 2023
Co-authored-by: bashonly <88596187+bashonly@users.noreply.github.com>
yt_dlp/extractor/bilibili.py Outdated Show resolved Hide resolved
@bashonly bashonly removed the pending-review PR needs a review label Nov 19, 2023
@bashonly bashonly self-assigned this Nov 19, 2023
@bashonly bashonly merged commit 9f09bdc into yt-dlp:master Nov 19, 2023
15 checks passed
@c-basalt c-basalt deleted the bili-interactive branch November 19, 2023 21:28
@xiamubobby
Copy link

Any plan on releasing this soon? The latest build upon 2023.11.16 looks still yet coming with the Cheese categorization support.

@bashonly
Copy link
Member

bashonly commented Dec 18, 2023

yt-dlp --update-to nightly or python -m pip install -U --pre yt-dlp

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-request Request to support a new website
Projects
None yet
Development

Successfully merging this pull request may close these issues.

[BiliBili] Unable to extract initial state [Bilibili] 互动视频 interactive split-path videos
4 participants