[bilibili] add support for Live Photo (video) downloads (#8860)

* bilibili: add support for live photo downloads
* fix: resolve flake8 linting errors (whitespace and line length)
* fix: resolve flake8 E302 and W293 linting errors
* fix: resolve flake8 W293 and E302 linting errors

* simplify syntax
* add 'livephoto' option
* add tests
This commit is contained in:
camellia2077
2026-01-11 02:27:34 +08:00
committed by GitHub
parent 18b4c67c65
commit 084a6d73e0
4 changed files with 35 additions and 2 deletions

View File

@@ -1813,6 +1813,16 @@ Description
Extract files from quoted content.
extractor.bilibili.livephoto
----------------------------
Type
``bool``
Default
``true``
Description
Download ``livephoto`` files.
extractor.[blogger].api-key
---------------------------
Type

View File

@@ -165,7 +165,9 @@
},
"bilibili":
{
"sleep-request": "3.0-6.0"
"sleep-request": "3.0-6.0",
"livephoto": true
},
"bluesky":
{

View File

@@ -75,17 +75,23 @@ class BilibiliArticleExtractor(BilibiliExtractor):
article["count"] = len(pics)
yield Message.Directory, "", article
livephoto = self.config("livephoto", True)
for article["num"], pic in enumerate(pics, 1):
url = pic["url"]
article.update(pic)
yield Message.Url, url, text.nameext_from_url(url, article)
if livephoto and (url := pic.get("live_url")):
article["id"] += "_l"
yield Message.Url, url, text.nameext_from_url(url, article)
class BilibiliUserArticlesExtractor(BilibiliExtractor):
"""Extractor for a bilibili user's articles"""
subcategory = "user-articles"
pattern = (r"(?:https?://)?space\.bilibili\.com/(\d+)"
r"/(?:article|upload/opus)")
r"/(?:article|upload/opus|dynamic)")
example = "https://space.bilibili.com/12345/article"
def articles(self):

View File

@@ -65,6 +65,16 @@ __tests__ = (
""",
},
{
"#url" : "https://www.bilibili.com/opus/1154738799821979656",
"#comment": "livephoto (#8860)",
"#class" : bilibili.BilibiliArticleExtractor,
"#results": (
"http://i0.hdslb.com/bfs/new_dyn/live_958a5cffe9177b196ada011867abd0a031968078.jpg",
"https://i0.hdslb.com/bfs/dyn_video/_000003lud8wlka5eq2kxctgfx3fwo3b-1-152111110022.mp4",
),
},
{
"#url" : "https://space.bilibili.com/405279279/article",
"#class" : bilibili.BilibiliUserArticlesExtractor,
@@ -77,6 +87,11 @@ __tests__ = (
"#class" : bilibili.BilibiliUserArticlesExtractor,
},
{
"#url" : "https://space.bilibili.com/405279279/dynamic",
"#class" : bilibili.BilibiliUserArticlesExtractor,
},
{
"#url" : "https://space.bilibili.com/405279279/favlist?fid=opus",
"#class" : bilibili.BilibiliUserArticlesFavoriteExtractor,