projects
/
youtube-dl
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
2e20cb3
)
[bilibili] Add support for new URL schema with BV ids (closes #24439, closes #24442)
author
Sergey M․
<dstftw@gmail.com>
Mon, 23 Mar 2020 17:11:39 +0000
(
00:11
+0700)
committer
Sergey M․
<dstftw@gmail.com>
Mon, 23 Mar 2020 17:11:39 +0000
(
00:11
+0700)
youtube_dl/extractor/bilibili.py
patch
|
blob
|
history
diff --git
a/youtube_dl/extractor/bilibili.py
b/youtube_dl/extractor/bilibili.py
index 80bd696e21f3a4af3c996e9899ce439116e13d19..e9d0a8d0c04adab890e2061e0f3e1ec477cc0694 100644
(file)
--- a/
youtube_dl/extractor/bilibili.py
+++ b/
youtube_dl/extractor/bilibili.py
@@
-24,7
+24,18
@@
from ..utils import (
class BiliBiliIE(InfoExtractor):
class BiliBiliIE(InfoExtractor):
- _VALID_URL = r'https?://(?:www\.|bangumi\.|)bilibili\.(?:tv|com)/(?:video/av|anime/(?P<anime_id>\d+)/play#)(?P<id>\d+)'
+ _VALID_URL = r'''(?x)
+ https?://
+ (?:(?:www|bangumi)\.)?
+ bilibili\.(?:tv|com)/
+ (?:
+ (?:
+ video/[aA][vV]|
+ anime/(?P<anime_id>\d+)/play\#
+ )(?P<id_bv>\d+)|
+ video/[bB][vV](?P<id>[^/?#&]+)
+ )
+ '''
_TESTS = [{
'url': 'http://www.bilibili.tv/video/av1074402/',
_TESTS = [{
'url': 'http://www.bilibili.tv/video/av1074402/',
@@
-92,6
+103,10
@@
class BiliBiliIE(InfoExtractor):
'skip_download': True, # Test metadata only
},
}]
'skip_download': True, # Test metadata only
},
}]
+ }, {
+ # new BV video id format
+ 'url': 'https://www.bilibili.com/video/BV1JE411F741',
+ 'only_matching': True,
}]
_APP_KEY = 'iVGUTjsxvpLeuDCf'
}]
_APP_KEY = 'iVGUTjsxvpLeuDCf'
@@
-109,7
+124,7
@@
class BiliBiliIE(InfoExtractor):
url, smuggled_data = unsmuggle_url(url, {})
mobj = re.match(self._VALID_URL, url)
url, smuggled_data = unsmuggle_url(url, {})
mobj = re.match(self._VALID_URL, url)
- video_id = mobj.group('id')
+ video_id = mobj.group('id')
or mobj.group('id_bv')
anime_id = mobj.group('anime_id')
webpage = self._download_webpage(url, video_id)
anime_id = mobj.group('anime_id')
webpage = self._download_webpage(url, video_id)