diff options
| author | Sergey M․ <dstftw@gmail.com> | 2020-03-24 00:11:39 +0700 | 
|---|---|---|
| committer | Sergey M․ <dstftw@gmail.com> | 2020-03-24 00:11:39 +0700 | 
| commit | b4eb08bb03f69c587f8440912cf56aadc9e52879 (patch) | |
| tree | a78a9766b0179794d1cb4653a0d82cef39461982 | |
| parent | 2e20cb36364b91c1d928ce896064fdc7c49e82f8 (diff) | |
[bilibili] Add support for new URL schema with BV ids (closes #24439, closes #24442)
| -rw-r--r-- | youtube_dl/extractor/bilibili.py | 19 | 
1 files changed, 17 insertions, 2 deletions
| diff --git a/youtube_dl/extractor/bilibili.py b/youtube_dl/extractor/bilibili.py index 80bd696e2..e9d0a8d0c 100644 --- a/youtube_dl/extractor/bilibili.py +++ b/youtube_dl/extractor/bilibili.py @@ -24,7 +24,18 @@ from ..utils import (  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/', @@ -92,6 +103,10 @@ class BiliBiliIE(InfoExtractor):                  'skip_download': True,  # Test metadata only              },          }] +    }, { +        # new BV video id format +        'url': 'https://www.bilibili.com/video/BV1JE411F741', +        'only_matching': True,      }]      _APP_KEY = 'iVGUTjsxvpLeuDCf' @@ -109,7 +124,7 @@ class BiliBiliIE(InfoExtractor):          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) | 
