mirror of
https://github.com/yt-dlp/yt-dlp.git
synced 2024-12-14 23:32:33 +00:00
[youtube] Extract uploader_url (Closes #8724)
This commit is contained in:
parent
7bcd2830dd
commit
fd050249af
1 changed files with 44 additions and 2 deletions
|
@ -383,6 +383,7 @@ class YoutubeIE(YoutubeBaseInfoExtractor):
|
||||||
'title': 'youtube-dl test video "\'/\\ä↭𝕐',
|
'title': 'youtube-dl test video "\'/\\ä↭𝕐',
|
||||||
'uploader': 'Philipp Hagemeister',
|
'uploader': 'Philipp Hagemeister',
|
||||||
'uploader_id': 'phihag',
|
'uploader_id': 'phihag',
|
||||||
|
'uploader_url': 're:https?://(?:www\.)?youtube\.com/user/phihag',
|
||||||
'upload_date': '20121002',
|
'upload_date': '20121002',
|
||||||
'license': 'Standard YouTube License',
|
'license': 'Standard YouTube License',
|
||||||
'description': 'test chars: "\'/\\ä↭𝕐\ntest URL: https://github.com/rg3/youtube-dl/issues/1892\n\nThis is a test video for youtube-dl.\n\nFor more information, contact phihag@phihag.de .',
|
'description': 'test chars: "\'/\\ä↭𝕐\ntest URL: https://github.com/rg3/youtube-dl/issues/1892\n\nThis is a test video for youtube-dl.\n\nFor more information, contact phihag@phihag.de .',
|
||||||
|
@ -409,6 +410,7 @@ class YoutubeIE(YoutubeBaseInfoExtractor):
|
||||||
'iconic ep', 'iconic', 'love', 'it'],
|
'iconic ep', 'iconic', 'love', 'it'],
|
||||||
'uploader': 'Icona Pop',
|
'uploader': 'Icona Pop',
|
||||||
'uploader_id': 'IconaPop',
|
'uploader_id': 'IconaPop',
|
||||||
|
'uploader_url': 're:https?://(?:www\.)?youtube\.com/user/IconaPop',
|
||||||
'license': 'Standard YouTube License',
|
'license': 'Standard YouTube License',
|
||||||
'creator': 'Icona Pop',
|
'creator': 'Icona Pop',
|
||||||
}
|
}
|
||||||
|
@ -425,6 +427,7 @@ class YoutubeIE(YoutubeBaseInfoExtractor):
|
||||||
'description': 'md5:64249768eec3bc4276236606ea996373',
|
'description': 'md5:64249768eec3bc4276236606ea996373',
|
||||||
'uploader': 'justintimberlakeVEVO',
|
'uploader': 'justintimberlakeVEVO',
|
||||||
'uploader_id': 'justintimberlakeVEVO',
|
'uploader_id': 'justintimberlakeVEVO',
|
||||||
|
'uploader_url': 're:https?://(?:www\.)?youtube\.com/user/justintimberlakeVEVO',
|
||||||
'license': 'Standard YouTube License',
|
'license': 'Standard YouTube License',
|
||||||
'creator': 'Justin Timberlake',
|
'creator': 'Justin Timberlake',
|
||||||
'age_limit': 18,
|
'age_limit': 18,
|
||||||
|
@ -441,6 +444,7 @@ class YoutubeIE(YoutubeBaseInfoExtractor):
|
||||||
'description': 'md5:09b78bd971f1e3e289601dfba15ca4f7',
|
'description': 'md5:09b78bd971f1e3e289601dfba15ca4f7',
|
||||||
'uploader': 'SET India',
|
'uploader': 'SET India',
|
||||||
'uploader_id': 'setindia',
|
'uploader_id': 'setindia',
|
||||||
|
'uploader_url': 're:https?://(?:www\.)?youtube\.com/user/setindia',
|
||||||
'license': 'Standard YouTube License',
|
'license': 'Standard YouTube License',
|
||||||
'age_limit': 18,
|
'age_limit': 18,
|
||||||
}
|
}
|
||||||
|
@ -454,6 +458,7 @@ class YoutubeIE(YoutubeBaseInfoExtractor):
|
||||||
'title': 'youtube-dl test video "\'/\\ä↭𝕐',
|
'title': 'youtube-dl test video "\'/\\ä↭𝕐',
|
||||||
'uploader': 'Philipp Hagemeister',
|
'uploader': 'Philipp Hagemeister',
|
||||||
'uploader_id': 'phihag',
|
'uploader_id': 'phihag',
|
||||||
|
'uploader_url': 're:https?://(?:www\.)?youtube\.com/user/phihag',
|
||||||
'upload_date': '20121002',
|
'upload_date': '20121002',
|
||||||
'license': 'Standard YouTube License',
|
'license': 'Standard YouTube License',
|
||||||
'description': 'test chars: "\'/\\ä↭𝕐\ntest URL: https://github.com/rg3/youtube-dl/issues/1892\n\nThis is a test video for youtube-dl.\n\nFor more information, contact phihag@phihag.de .',
|
'description': 'test chars: "\'/\\ä↭𝕐\ntest URL: https://github.com/rg3/youtube-dl/issues/1892\n\nThis is a test video for youtube-dl.\n\nFor more information, contact phihag@phihag.de .',
|
||||||
|
@ -474,6 +479,7 @@ class YoutubeIE(YoutubeBaseInfoExtractor):
|
||||||
'ext': 'm4a',
|
'ext': 'm4a',
|
||||||
'upload_date': '20121002',
|
'upload_date': '20121002',
|
||||||
'uploader_id': '8KVIDEO',
|
'uploader_id': '8KVIDEO',
|
||||||
|
'uploader_url': 're:https?://(?:www\.)?youtube\.com/user/8KVIDEO',
|
||||||
'description': '',
|
'description': '',
|
||||||
'uploader': '8KVIDEO',
|
'uploader': '8KVIDEO',
|
||||||
'license': 'Standard YouTube License',
|
'license': 'Standard YouTube License',
|
||||||
|
@ -531,6 +537,7 @@ class YoutubeIE(YoutubeBaseInfoExtractor):
|
||||||
'upload_date': '20100909',
|
'upload_date': '20100909',
|
||||||
'uploader': 'The Amazing Atheist',
|
'uploader': 'The Amazing Atheist',
|
||||||
'uploader_id': 'TheAmazingAtheist',
|
'uploader_id': 'TheAmazingAtheist',
|
||||||
|
'uploader_url': 're:https?://(?:www\.)?youtube\.com/user/TheAmazingAtheist',
|
||||||
'license': 'Standard YouTube License',
|
'license': 'Standard YouTube License',
|
||||||
'title': 'Burning Everyone\'s Koran',
|
'title': 'Burning Everyone\'s Koran',
|
||||||
'description': 'SUBSCRIBE: http://www.youtube.com/saturninefilms\n\nEven Obama has taken a stand against freedom on this issue: http://www.huffingtonpost.com/2010/09/09/obama-gma-interview-quran_n_710282.html',
|
'description': 'SUBSCRIBE: http://www.youtube.com/saturninefilms\n\nEven Obama has taken a stand against freedom on this issue: http://www.huffingtonpost.com/2010/09/09/obama-gma-interview-quran_n_710282.html',
|
||||||
|
@ -546,6 +553,7 @@ class YoutubeIE(YoutubeBaseInfoExtractor):
|
||||||
'description': 're:(?s).{100,}About the Game\n.*?The Witcher 3: Wild Hunt.{100,}',
|
'description': 're:(?s).{100,}About the Game\n.*?The Witcher 3: Wild Hunt.{100,}',
|
||||||
'uploader': 'The Witcher',
|
'uploader': 'The Witcher',
|
||||||
'uploader_id': 'WitcherGame',
|
'uploader_id': 'WitcherGame',
|
||||||
|
'uploader_url': 're:https?://(?:www\.)?youtube\.com/user/WitcherGame',
|
||||||
'upload_date': '20140605',
|
'upload_date': '20140605',
|
||||||
'license': 'Standard YouTube License',
|
'license': 'Standard YouTube License',
|
||||||
'age_limit': 18,
|
'age_limit': 18,
|
||||||
|
@ -561,6 +569,7 @@ class YoutubeIE(YoutubeBaseInfoExtractor):
|
||||||
'description': 'md5:33765bb339e1b47e7e72b5490139bb41',
|
'description': 'md5:33765bb339e1b47e7e72b5490139bb41',
|
||||||
'uploader': 'LloydVEVO',
|
'uploader': 'LloydVEVO',
|
||||||
'uploader_id': 'LloydVEVO',
|
'uploader_id': 'LloydVEVO',
|
||||||
|
'uploader_url': 're:https?://(?:www\.)?youtube\.com/user/LloydVEVO',
|
||||||
'upload_date': '20110629',
|
'upload_date': '20110629',
|
||||||
'license': 'Standard YouTube License',
|
'license': 'Standard YouTube License',
|
||||||
'age_limit': 18,
|
'age_limit': 18,
|
||||||
|
@ -574,6 +583,7 @@ class YoutubeIE(YoutubeBaseInfoExtractor):
|
||||||
'ext': 'mp4',
|
'ext': 'mp4',
|
||||||
'upload_date': '20100430',
|
'upload_date': '20100430',
|
||||||
'uploader_id': 'deadmau5',
|
'uploader_id': 'deadmau5',
|
||||||
|
'uploader_url': 're:https?://(?:www\.)?youtube\.com/user/deadmau5',
|
||||||
'creator': 'deadmau5',
|
'creator': 'deadmau5',
|
||||||
'description': 'md5:12c56784b8032162bb936a5f76d55360',
|
'description': 'md5:12c56784b8032162bb936a5f76d55360',
|
||||||
'uploader': 'deadmau5',
|
'uploader': 'deadmau5',
|
||||||
|
@ -593,6 +603,7 @@ class YoutubeIE(YoutubeBaseInfoExtractor):
|
||||||
'ext': 'mp4',
|
'ext': 'mp4',
|
||||||
'upload_date': '20150827',
|
'upload_date': '20150827',
|
||||||
'uploader_id': 'olympic',
|
'uploader_id': 'olympic',
|
||||||
|
'uploader_url': 're:https?://(?:www\.)?youtube\.com/user/olympic',
|
||||||
'license': 'Standard YouTube License',
|
'license': 'Standard YouTube License',
|
||||||
'description': 'HO09 - Women - GER-AUS - Hockey - 31 July 2012 - London 2012 Olympic Games',
|
'description': 'HO09 - Women - GER-AUS - Hockey - 31 July 2012 - London 2012 Olympic Games',
|
||||||
'uploader': 'Olympics',
|
'uploader': 'Olympics',
|
||||||
|
@ -611,6 +622,7 @@ class YoutubeIE(YoutubeBaseInfoExtractor):
|
||||||
'stretched_ratio': 16 / 9.,
|
'stretched_ratio': 16 / 9.,
|
||||||
'upload_date': '20110310',
|
'upload_date': '20110310',
|
||||||
'uploader_id': 'AllenMeow',
|
'uploader_id': 'AllenMeow',
|
||||||
|
'uploader_url': 're:https?://(?:www\.)?youtube\.com/user/AllenMeow',
|
||||||
'description': 'made by Wacom from Korea | 字幕&加油添醋 by TY\'s Allen | 感謝heylisa00cavey1001同學熱情提供梗及翻譯',
|
'description': 'made by Wacom from Korea | 字幕&加油添醋 by TY\'s Allen | 感謝heylisa00cavey1001同學熱情提供梗及翻譯',
|
||||||
'uploader': '孫艾倫',
|
'uploader': '孫艾倫',
|
||||||
'license': 'Standard YouTube License',
|
'license': 'Standard YouTube License',
|
||||||
|
@ -644,6 +656,7 @@ class YoutubeIE(YoutubeBaseInfoExtractor):
|
||||||
'description': 'md5:116377fd2963b81ec4ce64b542173306',
|
'description': 'md5:116377fd2963b81ec4ce64b542173306',
|
||||||
'upload_date': '20150625',
|
'upload_date': '20150625',
|
||||||
'uploader_id': 'dorappi2000',
|
'uploader_id': 'dorappi2000',
|
||||||
|
'uploader_url': 're:https?://(?:www\.)?youtube\.com/user/dorappi2000',
|
||||||
'uploader': 'dorappi2000',
|
'uploader': 'dorappi2000',
|
||||||
'license': 'Standard YouTube License',
|
'license': 'Standard YouTube License',
|
||||||
'formats': 'mincount:33',
|
'formats': 'mincount:33',
|
||||||
|
@ -685,6 +698,7 @@ class YoutubeIE(YoutubeBaseInfoExtractor):
|
||||||
'upload_date': '20150721',
|
'upload_date': '20150721',
|
||||||
'uploader': 'Beer Games Beer',
|
'uploader': 'Beer Games Beer',
|
||||||
'uploader_id': 'beergamesbeer',
|
'uploader_id': 'beergamesbeer',
|
||||||
|
'uploader_url': 're:https?://(?:www\.)?youtube\.com/user/beergamesbeer',
|
||||||
'license': 'Standard YouTube License',
|
'license': 'Standard YouTube License',
|
||||||
},
|
},
|
||||||
}, {
|
}, {
|
||||||
|
@ -696,6 +710,7 @@ class YoutubeIE(YoutubeBaseInfoExtractor):
|
||||||
'upload_date': '20150721',
|
'upload_date': '20150721',
|
||||||
'uploader': 'Beer Games Beer',
|
'uploader': 'Beer Games Beer',
|
||||||
'uploader_id': 'beergamesbeer',
|
'uploader_id': 'beergamesbeer',
|
||||||
|
'uploader_url': 're:https?://(?:www\.)?youtube\.com/user/beergamesbeer',
|
||||||
'license': 'Standard YouTube License',
|
'license': 'Standard YouTube License',
|
||||||
},
|
},
|
||||||
}, {
|
}, {
|
||||||
|
@ -707,6 +722,7 @@ class YoutubeIE(YoutubeBaseInfoExtractor):
|
||||||
'upload_date': '20150721',
|
'upload_date': '20150721',
|
||||||
'uploader': 'Beer Games Beer',
|
'uploader': 'Beer Games Beer',
|
||||||
'uploader_id': 'beergamesbeer',
|
'uploader_id': 'beergamesbeer',
|
||||||
|
'uploader_url': 're:https?://(?:www\.)?youtube\.com/user/beergamesbeer',
|
||||||
'license': 'Standard YouTube License',
|
'license': 'Standard YouTube License',
|
||||||
},
|
},
|
||||||
}, {
|
}, {
|
||||||
|
@ -718,6 +734,7 @@ class YoutubeIE(YoutubeBaseInfoExtractor):
|
||||||
'upload_date': '20150721',
|
'upload_date': '20150721',
|
||||||
'uploader': 'Beer Games Beer',
|
'uploader': 'Beer Games Beer',
|
||||||
'uploader_id': 'beergamesbeer',
|
'uploader_id': 'beergamesbeer',
|
||||||
|
'uploader_url': 're:https?://(?:www\.)?youtube\.com/user/beergamesbeer',
|
||||||
'license': 'Standard YouTube License',
|
'license': 'Standard YouTube License',
|
||||||
},
|
},
|
||||||
}],
|
}],
|
||||||
|
@ -752,6 +769,7 @@ class YoutubeIE(YoutubeBaseInfoExtractor):
|
||||||
'description': 'md5:8085699c11dc3f597ce0410b0dcbb34a',
|
'description': 'md5:8085699c11dc3f597ce0410b0dcbb34a',
|
||||||
'upload_date': '20151119',
|
'upload_date': '20151119',
|
||||||
'uploader_id': 'IronSoulElf',
|
'uploader_id': 'IronSoulElf',
|
||||||
|
'uploader_url': 're:https?://(?:www\.)?youtube\.com/user/IronSoulElf',
|
||||||
'uploader': 'IronSoulElf',
|
'uploader': 'IronSoulElf',
|
||||||
'license': 'Standard YouTube License',
|
'license': 'Standard YouTube License',
|
||||||
'creator': 'Todd Haberman, Daniel Law Heath & Aaron Kaplan',
|
'creator': 'Todd Haberman, Daniel Law Heath & Aaron Kaplan',
|
||||||
|
@ -791,6 +809,7 @@ class YoutubeIE(YoutubeBaseInfoExtractor):
|
||||||
'description': 'md5:a677553cf0840649b731a3024aeff4cc',
|
'description': 'md5:a677553cf0840649b731a3024aeff4cc',
|
||||||
'upload_date': '20150127',
|
'upload_date': '20150127',
|
||||||
'uploader_id': 'BerkmanCenter',
|
'uploader_id': 'BerkmanCenter',
|
||||||
|
'uploader_url': 're:https?://(?:www\.)?youtube\.com/user/BerkmanCenter',
|
||||||
'uploader': 'BerkmanCenter',
|
'uploader': 'BerkmanCenter',
|
||||||
'license': 'Creative Commons Attribution license (reuse allowed)',
|
'license': 'Creative Commons Attribution license (reuse allowed)',
|
||||||
},
|
},
|
||||||
|
@ -798,6 +817,24 @@ class YoutubeIE(YoutubeBaseInfoExtractor):
|
||||||
'skip_download': True,
|
'skip_download': True,
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
# Channel-like uploader_url
|
||||||
|
'url': 'https://www.youtube.com/watch?v=eQcmzGIKrzg',
|
||||||
|
'info_dict': {
|
||||||
|
'id': 'eQcmzGIKrzg',
|
||||||
|
'ext': 'mp4',
|
||||||
|
'title': 'Democratic Socialism and Foreign Policy | Bernie Sanders',
|
||||||
|
'description': 'md5:dda0d780d5a6e120758d1711d062a867',
|
||||||
|
'upload_date': '20151119',
|
||||||
|
'uploader': 'Bernie 2016',
|
||||||
|
'uploader_id': 'UCH1dpzjCEiGAt8CXkryhkZg',
|
||||||
|
'uploader_url': 're:https?://(?:www\.)?youtube\.com/channel/UCH1dpzjCEiGAt8CXkryhkZg',
|
||||||
|
'license': 'Creative Commons Attribution license (reuse allowed)',
|
||||||
|
},
|
||||||
|
'params': {
|
||||||
|
'skip_download': True,
|
||||||
|
},
|
||||||
|
},
|
||||||
{
|
{
|
||||||
'url': 'https://www.youtube.com/watch?feature=player_embedded&v=V36LpHqtcDY',
|
'url': 'https://www.youtube.com/watch?feature=player_embedded&v=V36LpHqtcDY',
|
||||||
'only_matching': True,
|
'only_matching': True,
|
||||||
|
@ -1334,9 +1371,13 @@ class YoutubeIE(YoutubeBaseInfoExtractor):
|
||||||
|
|
||||||
# uploader_id
|
# uploader_id
|
||||||
video_uploader_id = None
|
video_uploader_id = None
|
||||||
mobj = re.search(r'<link itemprop="url" href="http://www.youtube.com/(?:user|channel)/([^"]+)">', video_webpage)
|
video_uploader_url = None
|
||||||
|
mobj = re.search(
|
||||||
|
r'<link itemprop="url" href="(?P<uploader_url>https?://www.youtube.com/(?:user|channel)/(?P<uploader_id>[^"]+))">',
|
||||||
|
video_webpage)
|
||||||
if mobj is not None:
|
if mobj is not None:
|
||||||
video_uploader_id = mobj.group(1)
|
video_uploader_id = mobj.group('uploader_id')
|
||||||
|
video_uploader_url = mobj.group('uploader_url')
|
||||||
else:
|
else:
|
||||||
self._downloader.report_warning('unable to extract uploader nickname')
|
self._downloader.report_warning('unable to extract uploader nickname')
|
||||||
|
|
||||||
|
@ -1642,6 +1683,7 @@ class YoutubeIE(YoutubeBaseInfoExtractor):
|
||||||
'id': video_id,
|
'id': video_id,
|
||||||
'uploader': video_uploader,
|
'uploader': video_uploader,
|
||||||
'uploader_id': video_uploader_id,
|
'uploader_id': video_uploader_id,
|
||||||
|
'uploader_url': video_uploader_url,
|
||||||
'upload_date': upload_date,
|
'upload_date': upload_date,
|
||||||
'license': video_license,
|
'license': video_license,
|
||||||
'creator': video_creator,
|
'creator': video_creator,
|
||||||
|
|
Loading…
Reference in a new issue