[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

@@ -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):