[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:
@@ -1813,6 +1813,16 @@ Description
|
|||||||
Extract files from quoted content.
|
Extract files from quoted content.
|
||||||
|
|
||||||
|
|
||||||
|
extractor.bilibili.livephoto
|
||||||
|
----------------------------
|
||||||
|
Type
|
||||||
|
``bool``
|
||||||
|
Default
|
||||||
|
``true``
|
||||||
|
Description
|
||||||
|
Download ``livephoto`` files.
|
||||||
|
|
||||||
|
|
||||||
extractor.[blogger].api-key
|
extractor.[blogger].api-key
|
||||||
---------------------------
|
---------------------------
|
||||||
Type
|
Type
|
||||||
|
|||||||
@@ -165,7 +165,9 @@
|
|||||||
},
|
},
|
||||||
"bilibili":
|
"bilibili":
|
||||||
{
|
{
|
||||||
"sleep-request": "3.0-6.0"
|
"sleep-request": "3.0-6.0",
|
||||||
|
|
||||||
|
"livephoto": true
|
||||||
},
|
},
|
||||||
"bluesky":
|
"bluesky":
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -75,17 +75,23 @@ class BilibiliArticleExtractor(BilibiliExtractor):
|
|||||||
|
|
||||||
article["count"] = len(pics)
|
article["count"] = len(pics)
|
||||||
yield Message.Directory, "", article
|
yield Message.Directory, "", article
|
||||||
|
|
||||||
|
livephoto = self.config("livephoto", True)
|
||||||
for article["num"], pic in enumerate(pics, 1):
|
for article["num"], pic in enumerate(pics, 1):
|
||||||
url = pic["url"]
|
url = pic["url"]
|
||||||
article.update(pic)
|
article.update(pic)
|
||||||
yield Message.Url, url, text.nameext_from_url(url, article)
|
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):
|
class BilibiliUserArticlesExtractor(BilibiliExtractor):
|
||||||
"""Extractor for a bilibili user's articles"""
|
"""Extractor for a bilibili user's articles"""
|
||||||
subcategory = "user-articles"
|
subcategory = "user-articles"
|
||||||
pattern = (r"(?:https?://)?space\.bilibili\.com/(\d+)"
|
pattern = (r"(?:https?://)?space\.bilibili\.com/(\d+)"
|
||||||
r"/(?:article|upload/opus)")
|
r"/(?:article|upload/opus|dynamic)")
|
||||||
example = "https://space.bilibili.com/12345/article"
|
example = "https://space.bilibili.com/12345/article"
|
||||||
|
|
||||||
def articles(self):
|
def articles(self):
|
||||||
|
|||||||
@@ -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",
|
"#url" : "https://space.bilibili.com/405279279/article",
|
||||||
"#class" : bilibili.BilibiliUserArticlesExtractor,
|
"#class" : bilibili.BilibiliUserArticlesExtractor,
|
||||||
@@ -77,6 +87,11 @@ __tests__ = (
|
|||||||
"#class" : bilibili.BilibiliUserArticlesExtractor,
|
"#class" : bilibili.BilibiliUserArticlesExtractor,
|
||||||
},
|
},
|
||||||
|
|
||||||
|
{
|
||||||
|
"#url" : "https://space.bilibili.com/405279279/dynamic",
|
||||||
|
"#class" : bilibili.BilibiliUserArticlesExtractor,
|
||||||
|
},
|
||||||
|
|
||||||
{
|
{
|
||||||
"#url" : "https://space.bilibili.com/405279279/favlist?fid=opus",
|
"#url" : "https://space.bilibili.com/405279279/favlist?fid=opus",
|
||||||
"#class" : bilibili.BilibiliUserArticlesFavoriteExtractor,
|
"#class" : bilibili.BilibiliUserArticlesFavoriteExtractor,
|
||||||
|
|||||||
Reference in New Issue
Block a user