diff options
| author | Sergey M․ <dstftw@gmail.com> | 2021-04-07 03:34:43 +0700 | 
|---|---|---|
| committer | Sergey M․ <dstftw@gmail.com> | 2021-04-07 03:34:43 +0700 | 
| commit | 6b116f0c03ac0b1aff01cd08bbe1d5cb87dff853 (patch) | |
| tree | 51bf53c081cbf33181e4e40d8187f915cfb13cda | |
| parent | 70d0d4f9beba0e5b6d95ee50ad62ae7ab5be9be1 (diff) | |
[youtube] Fix videos with restricted location (closes #28685)
| -rw-r--r-- | youtube_dl/extractor/youtube.py | 25 | 
1 files changed, 24 insertions, 1 deletions
| diff --git a/youtube_dl/extractor/youtube.py b/youtube_dl/extractor/youtube.py index 2e027528d..6b4c7912c 100644 --- a/youtube_dl/extractor/youtube.py +++ b/youtube_dl/extractor/youtube.py @@ -1084,6 +1084,23 @@ class YoutubeIE(YoutubeBaseInfoExtractor):              'url': 'https://www.youtube.com/watch?v=nGC3D_FkCmg',              'only_matching': True,          }, +        { +            # restricted location, https://github.com/ytdl-org/youtube-dl/issues/28685 +            'url': 'cBvYw8_A0vQ', +            'info_dict': { +                'id': 'cBvYw8_A0vQ', +                'ext': 'mp4', +                'title': '4K Ueno Okachimachi  Street  Scenes  上野御徒町歩き', +                'description': 'md5:ea770e474b7cd6722b4c95b833c03630', +                'upload_date': '20201120', +                'uploader': 'Walk around Japan', +                'uploader_id': 'UC3o_t8PzBmXf5S9b7GLx1Mw', +                'uploader_url': r're:https?://(?:www\.)?youtube\.com/channel/UC3o_t8PzBmXf5S9b7GLx1Mw', +            }, +            'params': { +                'skip_download': True, +            }, +        },      ]      _formats = {          '5': {'ext': 'flv', 'width': 400, 'height': 240, 'acodec': 'mp3', 'abr': 64, 'vcodec': 'h263'}, @@ -1485,7 +1502,13 @@ class YoutubeIE(YoutubeBaseInfoExtractor):          def get_text(x):              if not x:                  return -            return x.get('simpleText') or ''.join([r['text'] for r in x['runs']]) +            text = x.get('simpleText') +            if text and isinstance(text, compat_str): +                return text +            runs = x.get('runs') +            if not isinstance(runs, list): +                return +            return ''.join([r['text'] for r in runs if isinstance(r.get('text'), compat_str)])          search_meta = (              lambda x: self._html_search_meta(x, webpage, default=None)) \ | 
