Fix typos (#27084)
* spelling: authorization Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: brightcove Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: creation Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: exceeded Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: exception Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: extension Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: extracting Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: extraction Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: frontline Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: improve Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: length Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: listsubtitles Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: multimedia Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: obfuscated Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: partitioning Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: playlist Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: playlists Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: restriction Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: services Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: split Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: srmediathek Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: support Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: thumbnail Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: verification Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: whitespaces Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>
This commit is contained in:
parent
21292c0649
commit
71ddc222ad
17 changed files with 51 additions and 51 deletions
34
ChangeLog
34
ChangeLog
|
@ -367,7 +367,7 @@ Extractors
|
||||||
+ Add support for more domains
|
+ Add support for more domains
|
||||||
* [svt] Fix series extraction (#22297)
|
* [svt] Fix series extraction (#22297)
|
||||||
* [svt] Fix article extraction (#22897, #22919)
|
* [svt] Fix article extraction (#22897, #22919)
|
||||||
* [soundcloud] Imporve private playlist/set tracks extraction (#3707)
|
* [soundcloud] Improve private playlist/set tracks extraction (#3707)
|
||||||
|
|
||||||
|
|
||||||
version 2020.01.24
|
version 2020.01.24
|
||||||
|
@ -493,7 +493,7 @@ Extractors
|
||||||
* [abcotvs] Relax URL regular expression and improve metadata extraction
|
* [abcotvs] Relax URL regular expression and improve metadata extraction
|
||||||
(#18014)
|
(#18014)
|
||||||
* [channel9] Reduce response size
|
* [channel9] Reduce response size
|
||||||
* [adobetv] Improve extaction
|
* [adobetv] Improve extraction
|
||||||
* Use OnDemandPagedList for list extractors
|
* Use OnDemandPagedList for list extractors
|
||||||
* Reduce show extraction requests
|
* Reduce show extraction requests
|
||||||
* Extract original video format and subtitles
|
* Extract original video format and subtitles
|
||||||
|
@ -518,7 +518,7 @@ Extractors
|
||||||
* [dailymotion] Improve extraction
|
* [dailymotion] Improve extraction
|
||||||
* Extract http formats included in m3u8 manifest
|
* Extract http formats included in m3u8 manifest
|
||||||
* Fix user extraction (#3553, #21415)
|
* Fix user extraction (#3553, #21415)
|
||||||
+ Add suport for User Authentication (#11491)
|
+ Add support for User Authentication (#11491)
|
||||||
* Fix password protected videos extraction (#23176)
|
* Fix password protected videos extraction (#23176)
|
||||||
* Respect age limit option and family filter cookie value (#18437)
|
* Respect age limit option and family filter cookie value (#18437)
|
||||||
* Handle video url playlist query param
|
* Handle video url playlist query param
|
||||||
|
@ -603,7 +603,7 @@ Extractors
|
||||||
- [go90] Remove extractor
|
- [go90] Remove extractor
|
||||||
* [kakao] Remove raw request
|
* [kakao] Remove raw request
|
||||||
+ [kakao] Extract format total bitrate
|
+ [kakao] Extract format total bitrate
|
||||||
* [daum] Fix VOD and Clip extracton (#15015)
|
* [daum] Fix VOD and Clip extraction (#15015)
|
||||||
* [kakao] Improve extraction
|
* [kakao] Improve extraction
|
||||||
+ Add support for embed URLs
|
+ Add support for embed URLs
|
||||||
+ Add support for Kakao Legacy vid based embed URLs
|
+ Add support for Kakao Legacy vid based embed URLs
|
||||||
|
@ -647,7 +647,7 @@ Extractors
|
||||||
* Improve format extraction (#22123)
|
* Improve format extraction (#22123)
|
||||||
+ Extract uploader_id and uploader_url (#21916)
|
+ Extract uploader_id and uploader_url (#21916)
|
||||||
+ Extract all known thumbnails (#19071, #20659)
|
+ Extract all known thumbnails (#19071, #20659)
|
||||||
* Fix extration for private playlists (#20976)
|
* Fix extraction for private playlists (#20976)
|
||||||
+ Add support for playlist embeds (#20976)
|
+ Add support for playlist embeds (#20976)
|
||||||
* Skip preview formats (#22806)
|
* Skip preview formats (#22806)
|
||||||
* [dplay] Improve extraction
|
* [dplay] Improve extraction
|
||||||
|
@ -1122,7 +1122,7 @@ Extractors
|
||||||
* [hbo] Fix extraction and extract subtitles (#14629, #13709)
|
* [hbo] Fix extraction and extract subtitles (#14629, #13709)
|
||||||
* [youtube] Extract srv[1-3] subtitle formats (#20566)
|
* [youtube] Extract srv[1-3] subtitle formats (#20566)
|
||||||
* [adultswim] Fix extraction (#18025)
|
* [adultswim] Fix extraction (#18025)
|
||||||
* [teamcoco] Fix extraction and add suport for subdomains (#17099, #20339)
|
* [teamcoco] Fix extraction and add support for subdomains (#17099, #20339)
|
||||||
* [adn] Fix subtitle compatibility with ffmpeg
|
* [adn] Fix subtitle compatibility with ffmpeg
|
||||||
* [adn] Fix extraction and add support for positioning styles (#20549)
|
* [adn] Fix extraction and add support for positioning styles (#20549)
|
||||||
* [vk] Use unique video id (#17848)
|
* [vk] Use unique video id (#17848)
|
||||||
|
@ -1534,7 +1534,7 @@ version 2018.11.18
|
||||||
|
|
||||||
Extractors
|
Extractors
|
||||||
+ [wwe] Extract subtitles
|
+ [wwe] Extract subtitles
|
||||||
+ [wwe] Add support for playlistst (#14781)
|
+ [wwe] Add support for playlists (#14781)
|
||||||
+ [wwe] Add support for wwe.com (#14781, #17450)
|
+ [wwe] Add support for wwe.com (#14781, #17450)
|
||||||
* [vk] Detect geo restriction (#17767)
|
* [vk] Detect geo restriction (#17767)
|
||||||
* [openload] Use original host during extraction (#18211)
|
* [openload] Use original host during extraction (#18211)
|
||||||
|
@ -2567,7 +2567,7 @@ Extractors
|
||||||
* [youku] Update ccode (#14872)
|
* [youku] Update ccode (#14872)
|
||||||
* [mnet] Fix format extraction (#14883)
|
* [mnet] Fix format extraction (#14883)
|
||||||
+ [xiami] Add Referer header to API request
|
+ [xiami] Add Referer header to API request
|
||||||
* [mtv] Correct scc extention in extracted subtitles (#13730)
|
* [mtv] Correct scc extension in extracted subtitles (#13730)
|
||||||
* [vvvvid] Fix extraction for kenc videos (#13406)
|
* [vvvvid] Fix extraction for kenc videos (#13406)
|
||||||
+ [br] Add support for BR Mediathek videos (#14560, #14788)
|
+ [br] Add support for BR Mediathek videos (#14560, #14788)
|
||||||
+ [daisuki] Add support for motto.daisuki.com (#14681)
|
+ [daisuki] Add support for motto.daisuki.com (#14681)
|
||||||
|
@ -2588,7 +2588,7 @@ Extractors
|
||||||
* [nexx] Extract more formats
|
* [nexx] Extract more formats
|
||||||
+ [openload] Add support for openload.link (#14763)
|
+ [openload] Add support for openload.link (#14763)
|
||||||
* [empflix] Relax URL regular expression
|
* [empflix] Relax URL regular expression
|
||||||
* [empflix] Fix extractrion
|
* [empflix] Fix extraction
|
||||||
* [tnaflix] Don't modify download URLs (#14811)
|
* [tnaflix] Don't modify download URLs (#14811)
|
||||||
- [gamersyde] Remove extractor
|
- [gamersyde] Remove extractor
|
||||||
* [francetv:generationwhat] Fix extraction
|
* [francetv:generationwhat] Fix extraction
|
||||||
|
@ -2783,7 +2783,7 @@ Extractors
|
||||||
* [yahoo] Bypass geo restriction for brightcove (#14210)
|
* [yahoo] Bypass geo restriction for brightcove (#14210)
|
||||||
* [yahoo] Use extracted brightcove account id (#14210)
|
* [yahoo] Use extracted brightcove account id (#14210)
|
||||||
* [rtve:alacarta] Fix extraction (#14290)
|
* [rtve:alacarta] Fix extraction (#14290)
|
||||||
+ [yahoo] Add support for custom brigthcove embeds (#14210)
|
+ [yahoo] Add support for custom brightcove embeds (#14210)
|
||||||
+ [generic] Add support for Video.js embeds
|
+ [generic] Add support for Video.js embeds
|
||||||
+ [gfycat] Add support for /gifs/detail URLs (#14322)
|
+ [gfycat] Add support for /gifs/detail URLs (#14322)
|
||||||
* [generic] Fix infinite recursion for twitter:player URLs (#14339)
|
* [generic] Fix infinite recursion for twitter:player URLs (#14339)
|
||||||
|
@ -3028,7 +3028,7 @@ Extractors
|
||||||
* [amcnetworks] Make rating optional (#12453)
|
* [amcnetworks] Make rating optional (#12453)
|
||||||
* [cloudy] Fix extraction (#13737)
|
* [cloudy] Fix extraction (#13737)
|
||||||
+ [nickru] Add support for nickelodeon.ru
|
+ [nickru] Add support for nickelodeon.ru
|
||||||
* [mtv] Improve thumbnal extraction
|
* [mtv] Improve thumbnail extraction
|
||||||
* [nick] Automate geo-restriction bypass (#13711)
|
* [nick] Automate geo-restriction bypass (#13711)
|
||||||
* [niconico] Improve error reporting (#13696)
|
* [niconico] Improve error reporting (#13696)
|
||||||
|
|
||||||
|
@ -3392,7 +3392,7 @@ Extractors
|
||||||
+ [cda] Support birthday verification (#12789)
|
+ [cda] Support birthday verification (#12789)
|
||||||
* [leeco] Fix extraction (#12974)
|
* [leeco] Fix extraction (#12974)
|
||||||
+ [pbs] Extract chapters
|
+ [pbs] Extract chapters
|
||||||
* [amp] Imporove thumbnail and subtitles extraction
|
* [amp] Improve thumbnail and subtitles extraction
|
||||||
* [foxsports] Fix extraction (#12945)
|
* [foxsports] Fix extraction (#12945)
|
||||||
- [coub] Remove comment count extraction (#12941)
|
- [coub] Remove comment count extraction (#12941)
|
||||||
|
|
||||||
|
@ -3562,7 +3562,7 @@ Extractors
|
||||||
+ [rbmaradio] Add support for redbullradio.com URLs (#12687)
|
+ [rbmaradio] Add support for redbullradio.com URLs (#12687)
|
||||||
+ [npo:live] Add support for default URL (#12555)
|
+ [npo:live] Add support for default URL (#12555)
|
||||||
* [mixcloud:playlist] Fix title, description and view count extraction (#12582)
|
* [mixcloud:playlist] Fix title, description and view count extraction (#12582)
|
||||||
+ [thesun] Add suport for thesun.co.uk (#11298, #12674)
|
+ [thesun] Add support for thesun.co.uk (#11298, #12674)
|
||||||
+ [ceskateleveize:porady] Add support for porady (#7411, #12645)
|
+ [ceskateleveize:porady] Add support for porady (#7411, #12645)
|
||||||
* [ceskateleveize] Improve extraction and remove URL replacement hacks
|
* [ceskateleveize] Improve extraction and remove URL replacement hacks
|
||||||
+ [kaltura] Add support for iframe embeds (#12679)
|
+ [kaltura] Add support for iframe embeds (#12679)
|
||||||
|
@ -3601,7 +3601,7 @@ Extractors
|
||||||
* [funimation] Fix extraction (#10696, #11773)
|
* [funimation] Fix extraction (#10696, #11773)
|
||||||
+ [xfileshare] Add support for vidabc.com (#12589)
|
+ [xfileshare] Add support for vidabc.com (#12589)
|
||||||
+ [xfileshare] Improve extraction and extract hls formats
|
+ [xfileshare] Improve extraction and extract hls formats
|
||||||
+ [crunchyroll] Pass geo verifcation proxy
|
+ [crunchyroll] Pass geo verification proxy
|
||||||
+ [cwtv] Extract ISM formats
|
+ [cwtv] Extract ISM formats
|
||||||
+ [tvplay] Bypass geo restriction
|
+ [tvplay] Bypass geo restriction
|
||||||
+ [vrv] Add support for vrv.co
|
+ [vrv] Add support for vrv.co
|
||||||
|
@ -3665,7 +3665,7 @@ Extractors
|
||||||
+ [bostonglobe] Add extractor for bostonglobe.com (#12099)
|
+ [bostonglobe] Add extractor for bostonglobe.com (#12099)
|
||||||
+ [toongoggles] Add support for toongoggles.com (#12171)
|
+ [toongoggles] Add support for toongoggles.com (#12171)
|
||||||
+ [medialaan] Add support for Medialaan sites (#9974, #11912)
|
+ [medialaan] Add support for Medialaan sites (#9974, #11912)
|
||||||
+ [discoverynetworks] Add support for more domains and bypass geo restiction
|
+ [discoverynetworks] Add support for more domains and bypass geo restriction
|
||||||
* [openload] Fix extraction (#10408)
|
* [openload] Fix extraction (#10408)
|
||||||
|
|
||||||
|
|
||||||
|
@ -5255,7 +5255,7 @@ version 2016.07.09.1
|
||||||
Fixed/improved extractors
|
Fixed/improved extractors
|
||||||
- youtube
|
- youtube
|
||||||
- ard
|
- ard
|
||||||
- srmediatek (#9373)
|
- srmediathek (#9373)
|
||||||
|
|
||||||
|
|
||||||
version 2016.07.09
|
version 2016.07.09
|
||||||
|
@ -5319,7 +5319,7 @@ Fixed/improved extractors
|
||||||
- kaltura (#5557)
|
- kaltura (#5557)
|
||||||
- la7
|
- la7
|
||||||
- Changed features
|
- Changed features
|
||||||
- Rename --cn-verfication-proxy to --geo-verification-proxy
|
- Rename --cn-verification-proxy to --geo-verification-proxy
|
||||||
Miscellaneous
|
Miscellaneous
|
||||||
- Add script for displaying downloads statistics
|
- Add script for displaying downloads statistics
|
||||||
|
|
||||||
|
|
|
@ -37,7 +37,7 @@
|
||||||
"writeinfojson": true,
|
"writeinfojson": true,
|
||||||
"writesubtitles": false,
|
"writesubtitles": false,
|
||||||
"allsubtitles": false,
|
"allsubtitles": false,
|
||||||
"listssubtitles": false,
|
"listsubtitles": false,
|
||||||
"socket_timeout": 20,
|
"socket_timeout": 20,
|
||||||
"fixup": "never"
|
"fixup": "never"
|
||||||
}
|
}
|
||||||
|
|
|
@ -2345,7 +2345,7 @@ except ImportError: # Python <3.4
|
||||||
|
|
||||||
# HTMLParseError has been deprecated in Python 3.3 and removed in
|
# HTMLParseError has been deprecated in Python 3.3 and removed in
|
||||||
# Python 3.5. Introducing dummy exception for Python >3.5 for compatible
|
# Python 3.5. Introducing dummy exception for Python >3.5 for compatible
|
||||||
# and uniform cross-version exceptiong handling
|
# and uniform cross-version exception handling
|
||||||
class compat_HTMLParseError(Exception):
|
class compat_HTMLParseError(Exception):
|
||||||
pass
|
pass
|
||||||
|
|
||||||
|
|
|
@ -147,7 +147,7 @@ class BrightcoveLegacyIE(InfoExtractor):
|
||||||
]
|
]
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def _build_brighcove_url(cls, object_str):
|
def _build_brightcove_url(cls, object_str):
|
||||||
"""
|
"""
|
||||||
Build a Brightcove url from a xml string containing
|
Build a Brightcove url from a xml string containing
|
||||||
<object class="BrightcoveExperience">{params}</object>
|
<object class="BrightcoveExperience">{params}</object>
|
||||||
|
@ -217,7 +217,7 @@ class BrightcoveLegacyIE(InfoExtractor):
|
||||||
return cls._make_brightcove_url(params)
|
return cls._make_brightcove_url(params)
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def _build_brighcove_url_from_js(cls, object_js):
|
def _build_brightcove_url_from_js(cls, object_js):
|
||||||
# The layout of JS is as follows:
|
# The layout of JS is as follows:
|
||||||
# customBC.createVideo = function (width, height, playerID, playerKey, videoPlayer, VideoRandomID) {
|
# customBC.createVideo = function (width, height, playerID, playerKey, videoPlayer, VideoRandomID) {
|
||||||
# // build Brightcove <object /> XML
|
# // build Brightcove <object /> XML
|
||||||
|
@ -272,12 +272,12 @@ class BrightcoveLegacyIE(InfoExtractor):
|
||||||
).+?>\s*</object>''',
|
).+?>\s*</object>''',
|
||||||
webpage)
|
webpage)
|
||||||
if matches:
|
if matches:
|
||||||
return list(filter(None, [cls._build_brighcove_url(m) for m in matches]))
|
return list(filter(None, [cls._build_brightcove_url(m) for m in matches]))
|
||||||
|
|
||||||
matches = re.findall(r'(customBC\.createVideo\(.+?\);)', webpage)
|
matches = re.findall(r'(customBC\.createVideo\(.+?\);)', webpage)
|
||||||
if matches:
|
if matches:
|
||||||
return list(filter(None, [
|
return list(filter(None, [
|
||||||
cls._build_brighcove_url_from_js(custom_bc)
|
cls._build_brightcove_url_from_js(custom_bc)
|
||||||
for custom_bc in matches]))
|
for custom_bc in matches]))
|
||||||
return [src for _, src in re.findall(
|
return [src for _, src in re.findall(
|
||||||
r'<iframe[^>]+src=([\'"])((?:https?:)?//link\.brightcove\.com/services/player/(?!\1).+)\1', webpage)]
|
r'<iframe[^>]+src=([\'"])((?:https?:)?//link\.brightcove\.com/services/player/(?!\1).+)\1', webpage)]
|
||||||
|
|
|
@ -1664,7 +1664,7 @@ class InfoExtractor(object):
|
||||||
# just the media without qualities renditions.
|
# just the media without qualities renditions.
|
||||||
# Fortunately, master playlist can be easily distinguished from media
|
# Fortunately, master playlist can be easily distinguished from media
|
||||||
# playlist based on particular tags availability. As of [1, 4.3.3, 4.3.4]
|
# playlist based on particular tags availability. As of [1, 4.3.3, 4.3.4]
|
||||||
# master playlist tags MUST NOT appear in a media playist and vice versa.
|
# master playlist tags MUST NOT appear in a media playlist and vice versa.
|
||||||
# As of [1, 4.3.3.1] #EXT-X-TARGETDURATION tag is REQUIRED for every
|
# As of [1, 4.3.3.1] #EXT-X-TARGETDURATION tag is REQUIRED for every
|
||||||
# media playlist and MUST NOT appear in master playlist thus we can
|
# media playlist and MUST NOT appear in master playlist thus we can
|
||||||
# clearly detect media playlist with this criterion.
|
# clearly detect media playlist with this criterion.
|
||||||
|
|
|
@ -60,7 +60,7 @@ class EuropaIE(InfoExtractor):
|
||||||
|
|
||||||
title = get_item('title', preferred_langs) or video_id
|
title = get_item('title', preferred_langs) or video_id
|
||||||
description = get_item('description', preferred_langs)
|
description = get_item('description', preferred_langs)
|
||||||
thumbnmail = xpath_text(playlist, './info/thumburl', 'thumbnail')
|
thumbnail = xpath_text(playlist, './info/thumburl', 'thumbnail')
|
||||||
upload_date = unified_strdate(xpath_text(playlist, './info/date', 'upload date'))
|
upload_date = unified_strdate(xpath_text(playlist, './info/date', 'upload date'))
|
||||||
duration = parse_duration(xpath_text(playlist, './info/duration', 'duration'))
|
duration = parse_duration(xpath_text(playlist, './info/duration', 'duration'))
|
||||||
view_count = int_or_none(xpath_text(playlist, './info/views', 'views'))
|
view_count = int_or_none(xpath_text(playlist, './info/views', 'views'))
|
||||||
|
@ -85,7 +85,7 @@ class EuropaIE(InfoExtractor):
|
||||||
'id': video_id,
|
'id': video_id,
|
||||||
'title': title,
|
'title': title,
|
||||||
'description': description,
|
'description': description,
|
||||||
'thumbnail': thumbnmail,
|
'thumbnail': thumbnail,
|
||||||
'upload_date': upload_date,
|
'upload_date': upload_date,
|
||||||
'duration': duration,
|
'duration': duration,
|
||||||
'view_count': view_count,
|
'view_count': view_count,
|
||||||
|
|
|
@ -842,7 +842,7 @@ class GenericIE(InfoExtractor):
|
||||||
'skip_download': True,
|
'skip_download': True,
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
# MTVSercices embed
|
# MTVServices embed
|
||||||
{
|
{
|
||||||
'url': 'http://www.vulture.com/2016/06/new-key-peele-sketches-released.html',
|
'url': 'http://www.vulture.com/2016/06/new-key-peele-sketches-released.html',
|
||||||
'md5': 'ca1aef97695ef2c1d6973256a57e5252',
|
'md5': 'ca1aef97695ef2c1d6973256a57e5252',
|
||||||
|
|
|
@ -64,7 +64,7 @@ class KUSIIE(InfoExtractor):
|
||||||
duration = float_or_none(xpath_text(doc, 'DURATION'), scale=1000)
|
duration = float_or_none(xpath_text(doc, 'DURATION'), scale=1000)
|
||||||
description = xpath_text(doc, 'ABSTRACT')
|
description = xpath_text(doc, 'ABSTRACT')
|
||||||
thumbnail = xpath_text(doc, './THUMBNAILIMAGE/FILENAME')
|
thumbnail = xpath_text(doc, './THUMBNAILIMAGE/FILENAME')
|
||||||
createtion_time = timeconvert(xpath_text(doc, 'rfc822creationdate'))
|
creation_time = timeconvert(xpath_text(doc, 'rfc822creationdate'))
|
||||||
|
|
||||||
quality_options = doc.find('{http://search.yahoo.com/mrss/}group').findall('{http://search.yahoo.com/mrss/}content')
|
quality_options = doc.find('{http://search.yahoo.com/mrss/}group').findall('{http://search.yahoo.com/mrss/}content')
|
||||||
formats = []
|
formats = []
|
||||||
|
@ -84,5 +84,5 @@ class KUSIIE(InfoExtractor):
|
||||||
'duration': duration,
|
'duration': duration,
|
||||||
'formats': formats,
|
'formats': formats,
|
||||||
'thumbnail': thumbnail,
|
'thumbnail': thumbnail,
|
||||||
'timestamp': createtion_time,
|
'timestamp': creation_time,
|
||||||
}
|
}
|
||||||
|
|
|
@ -33,7 +33,7 @@ class NprIE(InfoExtractor):
|
||||||
},
|
},
|
||||||
}],
|
}],
|
||||||
}, {
|
}, {
|
||||||
# mutlimedia, not media title
|
# multimedia, not media title
|
||||||
'url': 'https://www.npr.org/2017/06/19/533198237/tigers-jaw-tiny-desk-concert',
|
'url': 'https://www.npr.org/2017/06/19/533198237/tigers-jaw-tiny-desk-concert',
|
||||||
'info_dict': {
|
'info_dict': {
|
||||||
'id': '533198237',
|
'id': '533198237',
|
||||||
|
|
|
@ -477,7 +477,7 @@ class PBSIE(InfoExtractor):
|
||||||
if media_id:
|
if media_id:
|
||||||
return media_id, presumptive_id, upload_date, description
|
return media_id, presumptive_id, upload_date, description
|
||||||
|
|
||||||
# Fronline video embedded via flp
|
# Frontline video embedded via flp
|
||||||
video_id = self._search_regex(
|
video_id = self._search_regex(
|
||||||
r'videoid\s*:\s*"([\d+a-z]{7,})"', webpage, 'videoid', default=None)
|
r'videoid\s*:\s*"([\d+a-z]{7,})"', webpage, 'videoid', default=None)
|
||||||
if video_id:
|
if video_id:
|
||||||
|
|
|
@ -558,7 +558,7 @@ class SoundcloudSetIE(SoundcloudPlaylistBaseIE):
|
||||||
|
|
||||||
class SoundcloudPagedPlaylistBaseIE(SoundcloudIE):
|
class SoundcloudPagedPlaylistBaseIE(SoundcloudIE):
|
||||||
def _extract_playlist(self, base_url, playlist_id, playlist_title):
|
def _extract_playlist(self, base_url, playlist_id, playlist_title):
|
||||||
# Per the SoundCloud documentation, the maximum limit for a linked partioning query is 200.
|
# Per the SoundCloud documentation, the maximum limit for a linked partitioning query is 200.
|
||||||
# https://developers.soundcloud.com/blog/offset-pagination-deprecated
|
# https://developers.soundcloud.com/blog/offset-pagination-deprecated
|
||||||
COMMON_QUERY = {
|
COMMON_QUERY = {
|
||||||
'limit': 200,
|
'limit': 200,
|
||||||
|
|
|
@ -86,7 +86,7 @@ class TagesschauPlayerIE(InfoExtractor):
|
||||||
# return self._extract_via_api(kind, video_id)
|
# return self._extract_via_api(kind, video_id)
|
||||||
|
|
||||||
# JSON api does not provide some audio formats (e.g. ogg) thus
|
# JSON api does not provide some audio formats (e.g. ogg) thus
|
||||||
# extractiong audio via webpage
|
# extracting audio via webpage
|
||||||
|
|
||||||
webpage = self._download_webpage(url, video_id)
|
webpage = self._download_webpage(url, video_id)
|
||||||
|
|
||||||
|
|
|
@ -208,7 +208,7 @@ class ThePlatformIE(ThePlatformBaseIE, AdobePassIE):
|
||||||
if m:
|
if m:
|
||||||
return [m.group('url')]
|
return [m.group('url')]
|
||||||
|
|
||||||
# Are whitesapces ignored in URLs?
|
# Are whitespaces ignored in URLs?
|
||||||
# https://github.com/ytdl-org/youtube-dl/issues/12044
|
# https://github.com/ytdl-org/youtube-dl/issues/12044
|
||||||
matches = re.findall(
|
matches = re.findall(
|
||||||
r'(?s)<(?:iframe|script)[^>]+src=(["\'])((?:https?:)?//player\.theplatform\.com/p/.+?)\1', webpage)
|
r'(?s)<(?:iframe|script)[^>]+src=(["\'])((?:https?:)?//player\.theplatform\.com/p/.+?)\1', webpage)
|
||||||
|
|
|
@ -56,9 +56,9 @@ class TurnerBaseIE(AdobePassIE):
|
||||||
content_id = xpath_text(video_data, 'contentId') or video_id
|
content_id = xpath_text(video_data, 'contentId') or video_id
|
||||||
# rtmp_src = xpath_text(video_data, 'akamai/src')
|
# rtmp_src = xpath_text(video_data, 'akamai/src')
|
||||||
# if rtmp_src:
|
# if rtmp_src:
|
||||||
# splited_rtmp_src = rtmp_src.split(',')
|
# split_rtmp_src = rtmp_src.split(',')
|
||||||
# if len(splited_rtmp_src) == 2:
|
# if len(split_rtmp_src) == 2:
|
||||||
# rtmp_src = splited_rtmp_src[1]
|
# rtmp_src = split_rtmp_src[1]
|
||||||
# aifp = xpath_text(video_data, 'akamai/aifp', default='')
|
# aifp = xpath_text(video_data, 'akamai/aifp', default='')
|
||||||
|
|
||||||
urls = []
|
urls = []
|
||||||
|
|
|
@ -922,7 +922,7 @@ class VimeoAlbumIE(VimeoBaseInfoExtractor):
|
||||||
}]
|
}]
|
||||||
_PAGE_SIZE = 100
|
_PAGE_SIZE = 100
|
||||||
|
|
||||||
def _fetch_page(self, album_id, authorizaion, hashed_pass, page):
|
def _fetch_page(self, album_id, authorization, hashed_pass, page):
|
||||||
api_page = page + 1
|
api_page = page + 1
|
||||||
query = {
|
query = {
|
||||||
'fields': 'link,uri',
|
'fields': 'link,uri',
|
||||||
|
@ -934,7 +934,7 @@ class VimeoAlbumIE(VimeoBaseInfoExtractor):
|
||||||
videos = self._download_json(
|
videos = self._download_json(
|
||||||
'https://api.vimeo.com/albums/%s/videos' % album_id,
|
'https://api.vimeo.com/albums/%s/videos' % album_id,
|
||||||
album_id, 'Downloading page %d' % api_page, query=query, headers={
|
album_id, 'Downloading page %d' % api_page, query=query, headers={
|
||||||
'Authorization': 'jwt ' + authorizaion,
|
'Authorization': 'jwt ' + authorization,
|
||||||
})['data']
|
})['data']
|
||||||
for video in videos:
|
for video in videos:
|
||||||
link = video.get('link')
|
link = video.get('link')
|
||||||
|
|
|
@ -54,17 +54,17 @@ class XiamiBaseIE(InfoExtractor):
|
||||||
def _decrypt(origin):
|
def _decrypt(origin):
|
||||||
n = int(origin[0])
|
n = int(origin[0])
|
||||||
origin = origin[1:]
|
origin = origin[1:]
|
||||||
short_lenth = len(origin) // n
|
short_length = len(origin) // n
|
||||||
long_num = len(origin) - short_lenth * n
|
long_num = len(origin) - short_length * n
|
||||||
l = tuple()
|
l = tuple()
|
||||||
for i in range(0, n):
|
for i in range(0, n):
|
||||||
length = short_lenth
|
length = short_length
|
||||||
if i < long_num:
|
if i < long_num:
|
||||||
length += 1
|
length += 1
|
||||||
l += (origin[0:length], )
|
l += (origin[0:length], )
|
||||||
origin = origin[length:]
|
origin = origin[length:]
|
||||||
ans = ''
|
ans = ''
|
||||||
for i in range(0, short_lenth + 1):
|
for i in range(0, short_length + 1):
|
||||||
for j in range(0, n):
|
for j in range(0, n):
|
||||||
if len(l[j]) > i:
|
if len(l[j]) > i:
|
||||||
ans += l[j][i]
|
ans += l[j][i]
|
||||||
|
|
|
@ -2458,7 +2458,7 @@ class XAttrMetadataError(YoutubeDLError):
|
||||||
|
|
||||||
# Parsing code and msg
|
# Parsing code and msg
|
||||||
if (self.code in (errno.ENOSPC, errno.EDQUOT)
|
if (self.code in (errno.ENOSPC, errno.EDQUOT)
|
||||||
or 'No space left' in self.msg or 'Disk quota excedded' in self.msg):
|
or 'No space left' in self.msg or 'Disk quota exceeded' in self.msg):
|
||||||
self.reason = 'NO_SPACE'
|
self.reason = 'NO_SPACE'
|
||||||
elif self.code == errno.E2BIG or 'Argument list too long' in self.msg:
|
elif self.code == errno.E2BIG or 'Argument list too long' in self.msg:
|
||||||
self.reason = 'VALUE_TOO_LONG'
|
self.reason = 'VALUE_TOO_LONG'
|
||||||
|
@ -4207,10 +4207,10 @@ def parse_codecs(codecs_str):
|
||||||
# http://tools.ietf.org/html/rfc6381
|
# http://tools.ietf.org/html/rfc6381
|
||||||
if not codecs_str:
|
if not codecs_str:
|
||||||
return {}
|
return {}
|
||||||
splited_codecs = list(filter(None, map(
|
split_codecs = list(filter(None, map(
|
||||||
lambda str: str.strip(), codecs_str.strip().strip(',').split(','))))
|
lambda str: str.strip(), codecs_str.strip().strip(',').split(','))))
|
||||||
vcodec, acodec = None, None
|
vcodec, acodec = None, None
|
||||||
for full_codec in splited_codecs:
|
for full_codec in split_codecs:
|
||||||
codec = full_codec.split('.')[0]
|
codec = full_codec.split('.')[0]
|
||||||
if codec in ('avc1', 'avc2', 'avc3', 'avc4', 'vp9', 'vp8', 'hev1', 'hev2', 'h263', 'h264', 'mp4v', 'hvc1', 'av01', 'theora'):
|
if codec in ('avc1', 'avc2', 'avc3', 'avc4', 'vp9', 'vp8', 'hev1', 'hev2', 'h263', 'h264', 'mp4v', 'hvc1', 'av01', 'theora'):
|
||||||
if not vcodec:
|
if not vcodec:
|
||||||
|
@ -4221,10 +4221,10 @@ def parse_codecs(codecs_str):
|
||||||
else:
|
else:
|
||||||
write_string('WARNING: Unknown codec %s\n' % full_codec, sys.stderr)
|
write_string('WARNING: Unknown codec %s\n' % full_codec, sys.stderr)
|
||||||
if not vcodec and not acodec:
|
if not vcodec and not acodec:
|
||||||
if len(splited_codecs) == 2:
|
if len(split_codecs) == 2:
|
||||||
return {
|
return {
|
||||||
'vcodec': splited_codecs[0],
|
'vcodec': split_codecs[0],
|
||||||
'acodec': splited_codecs[1],
|
'acodec': split_codecs[1],
|
||||||
}
|
}
|
||||||
else:
|
else:
|
||||||
return {
|
return {
|
||||||
|
@ -5463,7 +5463,7 @@ def encode_base_n(num, n, table=None):
|
||||||
|
|
||||||
def decode_packed_codes(code):
|
def decode_packed_codes(code):
|
||||||
mobj = re.search(PACKED_CODES_RE, code)
|
mobj = re.search(PACKED_CODES_RE, code)
|
||||||
obfucasted_code, base, count, symbols = mobj.groups()
|
obfuscated_code, base, count, symbols = mobj.groups()
|
||||||
base = int(base)
|
base = int(base)
|
||||||
count = int(count)
|
count = int(count)
|
||||||
symbols = symbols.split('|')
|
symbols = symbols.split('|')
|
||||||
|
@ -5476,7 +5476,7 @@ def decode_packed_codes(code):
|
||||||
|
|
||||||
return re.sub(
|
return re.sub(
|
||||||
r'\b(\w+)\b', lambda mobj: symbol_table[mobj.group(0)],
|
r'\b(\w+)\b', lambda mobj: symbol_table[mobj.group(0)],
|
||||||
obfucasted_code)
|
obfuscated_code)
|
||||||
|
|
||||||
|
|
||||||
def caesar(s, alphabet, shift):
|
def caesar(s, alphabet, shift):
|
||||||
|
|
Loading…
Reference in a new issue