Commit Graph

740 Commits (6cf6b357f581af841a7d109aad47e40acf7d7795)

Author SHA1 Message Date
Yen Chi Hsuan e31fed95b4
[youtube] Recognize new locale-based player URLs (fixes )
Remita Amine 89beedd31f [youtube] improve m3u8 format extraction
Sergey M․ d23028a8fb
[youtube] Remove explicit preference for audio-only and video-only formats
In order not to break sorting when new formats appear
Sergey M․ d0ba55871e
[youtube] Improve _VALID_URLs (closes )
Yen Chi Hsuan c9612c0487
[youtube] Mark errors about rental videos as expected
Closes 
Sergey M․ 87dadd456a
[youtube:playlist] Recognize another playlist pattern (closes , closes )
Sergey M․ 0e879f432a
[youtube:channel] Remove duplicate test
Sergey M․ fd5c4aab59
[youtube] Raise GeoRestrictedError
Sergey M․ 6310acf512
[youtube] Fix parsing codecs (closes )
Remita Amine 605fd6392f [youtube] add format info for itag 325 and 328
Yen Chi Hsuan a22b2fd19b
[youtube] Fix ytsearch* when cookies are provided
Closes 

The API with `page` is no longer used in browsers, and YouTube always
returns {'reload': 'now'} when cookies are provided.

See http://youtube.github.io/spfjs/documentation/start/ for how SPF
works. Basically appending static link with a `spf` parameter yields the
corresponding dynamic link.
Sergey M․ a685751051
[youtube:playlist] Recognize TL playlists (closes )
Sergey M․ 3c90cc8b6f
[youtube] Fix extraction for domainless player URLs
Closes 
Closes 
Closes 
Closes 
Closes 
Closes 
Closes 
Closes 
Closes 
Closes 
Closes 
Closes 
Closes 
Closes 
Closes 
Closes 
Closes 
Closes 
Closes 
Sergey M․ 556dbe7fe3
[youtube] Add fallback for duration extraction (closes )
Sergey M․ 4201ba13e6
[youtube:playlist] Fix nonexistent/private playlist detection and skip private tests
Grzegorz P 8bc0800d7c [youtube:playlist] Fix nonexistent/private playlist detection (closes )
Sergey M․ 12afdc2ad6
[youtube] Extract episode metadata (closes , closes )
Sergey M․ 022a5d663b
[youtube] Add test for itag 212 ()
Kacper Michajłow 8409b3683c [youtube] Add itag 212
Seen on video with id 1t24XAntNCY
Yen Chi Hsuan ec85ded83c
Fix "invalid escape sequences" error on Python 3.6
Sergey M․ c867adc68c
[youtube:playlist] Pass disable_polymer in query (closes , closes )
Sergey M․ 073d5bf583
[youtube:live] Relax _VALID_URL (closes )
Sergey M․ 481cc7335c
[youtube] Fix --no-playlist behavior for youtu.be/id URLs (closes )
Sergey M․ c1b2a0858c
[youtube:live] Extend _VALID_URL (Closes )
stepshal 2d3d29976b
[youtube] Change test URLs from http to https
stepshal 925194022c
Improve some _VALID_URLs
stepshal 25042f7372 Add missing r prefix for _VALID_URLs
Sergey M․ feaa5ad787
[youtube:playlist] Extend _VALID_URL
Sergey M․ 7e5dc339de
[youtube:watchlater] Fix extraction (Closes )
Sergey M․ 6496ccb413
[youtube] Add support for rental videos' previews (Closes )
Sergey M․ dacb3a864a
[youtube:playlist] Fallback to video extraction for video/playlist URLs when playlist is broken (Closes )
Sergey M․ 05bddcc512
[youtube] Fix authentication (2) (Closes )
Sergey M․ 1212e9972f
[youtube] Fix authentication ()
Sergey M․ e298d3a08c
[youtube] Fix authentication (Closes )
Sergey M․ fd8c8c7dcd
[youtube:shared] Relax _VALID_URL
Sergey M․ 7f29cf545a
[youtube] Add YouTube Red paid video reference test ()
Sergey M․ e9fb6a4bbe
[youtube] Relax TFA regexes
Sergey M․ 9558dcec9c
[youtube:user] Preserve user/c path segment
Sergey M․ 73c4ac2c95
[youtube:channel] Improve channel id extraction and detect unavailable channels (Closes )
Yen Chi Hsuan 4080530624
[youtube:shared] Recognize the new 'shared' URLs
Closes 
Sergey M․ be49068d65
[youtube] Fix and skip some tests
Sergey M․ 525cedb971
[youtube] Relax URL expansion in description
Sergey M․ de3c7fe0d4
[youtube] Fix 141 format tests
Yen Chi Hsuan daa0df9e8b
[youtube:user] Support another URL form
Such an URL comes from http://www.gametrailers.com/. This is originally
a test case in GenericIE, but now seems all GameTrailers videos are on
YouTube.
Sergey M․ 2c34735267
[youtube] Add itags 256 and 258
Sergey M․ 25cb7a0eeb
[youtube] Allow empty attribute values in description regex
Sergey M․ 175c2e9ec3
[youtube:search_url] Reimplement in terms of youtube:playlistbase
Sergey M․ 494ab6db73
[youtube] Capture and output login error message
Jaime Marquínez Ferrándiz 1b6182d8f7 [youtube:playlist] Fetch all the videos in a mix (fixes )
Since there doesn't seem to be any indication, it stops when there aren't new videos in the webpage.
remitamine f3a58d46bf [youtube:user] check if the url didn't match only the other youtube extractors
Sergey M․ 466a614537
[youtube:playlist] Recognize popular uploads playlist as mix (Closes )
Sergey M․ 6d4fc66bfc [youtube] Add support for zwearz (Closes )
Sergey M․ 6dee688e6d [youtube:playlistsbase] Restrict playlist regex (Closes )
Sergey M․ 6e6bc8dae5 Use urlencode_postdata across the codebase
Sergey M․ 15707c7e02 [compat] Add compat_urllib_parse_urlencode and eliminate encode_dict
encode_dict functionality has been improved and moved directly into compat_urllib_parse_urlencode
All occurrences of compat_urllib_parse.urlencode throughout the codebase have been replaced by compat_urllib_parse_urlencode

Closes 
Sergey M․ f07e276a04 [youtube:live] Add extractor (Closes )
Yen Chi Hsuan 11f12195af [youtube] Added itag 91
Seen in https://www.youtube.com/watch?v=jMN4cxyhJjk
Sergey M․ fd050249af [youtube] Extract uploader_url (Closes )
Sergey M․ 7caf9830b0 [youtube] Extract license (Closes )
remitamine 3318832e9d [youtube] improve width and height extraction from fmt_list
remitamine c2d3cb4c63 Revert "[youtube] add tbr to _formats extracted from watch_as3.swf"
This reverts commit 4a5ba28a87.
remitamine c48dd4400f Revert "[youtube] add basic info for some unknown formats extracted from watch_as3.swf"
This reverts commit 85ca019d96.
remitamine 85ca019d96 [youtube] add basic info for some unknown formats extracted from watch_as3.swf
remitamine 4a5ba28a87 [youtube] add tbr to _formats extracted from watch_as3.swf
remitamine 82156fdbf0 [youtube] extract width and height from fmt_list
Sergey M․ d77ab8e255 Add --mark-watched feature (Closes )
Sergey M․ b78b292f0c [youtube] Add alternative automatic captions extraction approach (Closes )
Sergey M․ ebf1b291d0 [youtube:watchlater] Respect --no-playlist
Sergey M․ bc7a9cd8fb [youtube:watchlater] Improve _VALID_URL (Closes )
Sergey M․ d2c1f79f20 [youtube:searchurl] Extend _VALID_URL
Sergey M․ f9f49d87c2 [youtube] Add test for
Sergey M․ 6863631c26 [youtube] Improve multifeed videos extraction (Closes )
Sergey M․ b67d63149d [youtube] Fix typos
Sergey M․ 3834d3e35c [youtube] Clarify itag 36 height and abr (Closes )
remitamine 66159b38aa Merge pull request from remitamine/dash
Add generic support for mpd manifests(dash formats)
Sergey M․ 23d17e4beb [youtube] Fix automatic captions
remitamine 2fb35d1c28 [youtube] fix subtitle order
remitamine 09be85b8dd [youtube] fix subtitle extraction(fixes )
remitamine 8ff648e4f9 [youtube] use _extract_mpd_formats
Yen Chi Hsuan 08411970d5 Merge pull request from yan12125/facebook-dash
Facebook DASH formats
Jaime Marquínez Ferrándiz 3ccb0655c1 [youtube] Use 'orderedSet' instead of 'set' to preserve the order
Sergey M․ 9acd33094d [youtube] Filter duplicates in playlists base extractor
Sergey M․ 8e7aad2075 [youtube] Use authentication for entry list base extractor (Closes )
Yen Chi Hsuan 2d2fa82d17 [common] Add _extract_dash_manifest_formats
Yen Chi Hsuan c94678957f [common] Remove unused arguments
Yen Chi Hsuan 16f38a699f [common] Rename to namespace
For consistency with _parse_smil_*
Yen Chi Hsuan a6c2c24479 [youtube] Remove '(v|a)codec': 'none' entries
Not used anymore
Yen Chi Hsuan 5d2c0fd9ba [youtube] Pass self._formats to _parse_dash_manifest
Yen Chi Hsuan 17b598d30c [common] _parse_dash_manifest() from youtube.py
Yen Chi Hsuan 05d0d131a7 [youtube] Move decrypt_sig out of _parse_dash_manifest
Jaime Marquínez Ferrándiz 70029bc348 [youtube:user] Require 'https?://' in the url (fixes )
It was matching www.youtube.com/embed/WpfukLMe1TM.
The generic extractor automatically adds http:// if it's missing.
Yen Chi Hsuan e9bd0f772b Merge pull request from dyn888/master
[youtube] added vcodec/acodec/abr for multiple itags
Yen Chi Hsuan 94278f7202 [youtube] Prefer info from YouTube than _formats ()
Sergey M․ 51290d8457 [youtube] Simplify automatic captions URL check (Closes )
Dimitre Liotev 582f4f834e Fix issue (error when downloading automatic captions)
Sergey M․ e323cf3ff3 [youtube] Skip test
Sergey M․ 8ceabd4df3 [youtube] Capture and output unavailable message
Sergey M․ a8776b107b [youtube] Clarify test_Youtube_18
Sergey M․ 096b533982 [youtube] Fix URL expansion in video description
Fixes test_Youtube_18
Yen Chi Hsuan cc28492d31 [youtube] Fix acodec and vcodec order
In RFC6381, there's no rule stating that the first part of codecs should
be video and the second part should be audio, while it seems the case
for data reported by YouTube.
Sergey M․ 23f13e9754 [youtube] Support expanding alternative format of links in description (Closes )
dyn888 e1a0bfdffe [youtube] added vcodec/acodec/abr for multiple itags
Should make downloading with filters more precise and easier, ie. bestvideo[vcodec=h264]. By default a lot of codecs are specified as avc1.xxxxxx and unique for each format, which makes them unusable for bestvideo selection.
Sergey M․ e462474e1d [youtube] Generalize playlists extractor
Sergey M․ 9b9c5355e4 Rename error_to_str to error_to_compat_str
Sergey M․ 7f8b271465 Properly convert errors to strings
Sergey M․ 0cb58b0259 [youtube] Extract alt_title and creator for music videos (Closes )
Sergey M․ 4c6b4764f0 [youtube] Clarify itag 272 possible resolutions ()
Sergey M․ 2e1b928540 [youtube:playlist] Extend _VALID_URL
Sergey M․ 040ac68679 [youtube] Extend _VALID_URL (Closes )
Yen Chi Hsuan 049d71d874 [youtube] Simplify and make sure header values are strings
Yen Chi Hsuan ac5a69af45 [youtube] Disable compression for live streams
Sergey M․ 5faf9fed7e [youtube] Clarify rationale for yt:stretch validation
Lukáš Lalinský 41f24c321d [youtube] Use the existing `w` and `h` variables
Lukáš Lalinský 313dfc45f5 [youtube] Ignore yt:stretch with zero width/height
Sergey M? 5c2266df4b Switch codebase to use sanitized_Request instead of
compat_urllib_request.Request

[downloader/dash] Use sanitized_Request

[downloader/http] Use sanitized_Request

[atresplayer] Use sanitized_Request

[bambuser] Use sanitized_Request

[bliptv] Use sanitized_Request

[brightcove] Use sanitized_Request

[cbs] Use sanitized_Request

[ceskatelevize] Use sanitized_Request

[collegerama] Use sanitized_Request

[extractor/common] Use sanitized_Request

[crunchyroll] Use sanitized_Request

[dailymotion] Use sanitized_Request

[dcn] Use sanitized_Request

[dramafever] Use sanitized_Request

[dumpert] Use sanitized_Request

[eitb] Use sanitized_Request

[escapist] Use sanitized_Request

[everyonesmixtape] Use sanitized_Request

[extremetube] Use sanitized_Request

[facebook] Use sanitized_Request

[fc2] Use sanitized_Request

[flickr] Use sanitized_Request

[4tube] Use sanitized_Request

[gdcvault] Use sanitized_Request

[extractor/generic] Use sanitized_Request

[hearthisat] Use sanitized_Request

[hotnewhiphop] Use sanitized_Request

[hypem] Use sanitized_Request

[iprima] Use sanitized_Request

[ivi] Use sanitized_Request

[keezmovies] Use sanitized_Request

[letv] Use sanitized_Request

[lynda] Use sanitized_Request

[metacafe] Use sanitized_Request

[minhateca] Use sanitized_Request

[miomio] Use sanitized_Request

[meovideo] Use sanitized_Request

[mofosex] Use sanitized_Request

[moniker] Use sanitized_Request

[mooshare] Use sanitized_Request

[movieclips] Use sanitized_Request

[mtv] Use sanitized_Request

[myvideo] Use sanitized_Request

[neteasemusic] Use sanitized_Request

[nfb] Use sanitized_Request

[niconico] Use sanitized_Request

[noco] Use sanitized_Request

[nosvideo] Use sanitized_Request

[novamov] Use sanitized_Request

[nowness] Use sanitized_Request

[nuvid] Use sanitized_Request

[played] Use sanitized_Request

[pluralsight] Use sanitized_Request

[pornhub] Use sanitized_Request

[pornotube] Use sanitized_Request

[primesharetv] Use sanitized_Request

[promptfile] Use sanitized_Request

[qqmusic] Use sanitized_Request

[rtve] Use sanitized_Request

[safari] Use sanitized_Request

[sandia] Use sanitized_Request

[shared] Use sanitized_Request

[sharesix] Use sanitized_Request

[sina] Use sanitized_Request

[smotri] Use sanitized_Request

[sohu] Use sanitized_Request

[spankwire] Use sanitized_Request

[sportdeutschland] Use sanitized_Request

[streamcloud] Use sanitized_Request

[streamcz] Use sanitized_Request

[tapely] Use sanitized_Request

[tube8] Use sanitized_Request

[tubitv] Use sanitized_Request

[twitch] Use sanitized_Request

[twitter] Use sanitized_Request

[udemy] Use sanitized_Request

[vbox7] Use sanitized_Request

[veoh] Use sanitized_Request

[vessel] Use sanitized_Request

[vevo] Use sanitized_Request

[viddler] Use sanitized_Request

[videomega] Use sanitized_Request

[viewvster] Use sanitized_Request

[viki] Use sanitized_Request

[vk] Use sanitized_Request

[vodlocker] Use sanitized_Request

[voicerepublic] Use sanitized_Request

[wistia] Use sanitized_Request

[xfileshare] Use sanitized_Request

[xtube] Use sanitized_Request

[xvideos] Use sanitized_Request

[yandexmusic] Use sanitized_Request

[youku] Use sanitized_Request

[youporn] Use sanitized_Request

[youtube] Use sanitized_Request

[patreon] Use sanitized_Request

[extractor/common] Remove unused import

[nfb] PEP 8
Sergey M․ 9022726446 [youtube] Fix test
Sergey M․ 94bfcd23b7 [youtube] Fix test
Sergey M․ 526b3b0716 [youtube] Clarify ytplayer.config extraction rationale
Sergey M․ 61f92af1cf [youtube] Add test with '};' in tags
Sergey M․ a72778d364 [youtube] Improve ytplayer.config extraction
Sergey M 5ae17037a3 Merge pull request from lalinsky/fix-youtube
[youtube] More explicit player config JSON extraction (fixes )
Lukáš Lalinský b41631c4e6 [youtube] Send the list of patterns directly to _search_regex
Lukáš Lalinský 0e49d9a6b0 [youtube] Fall back to the original regex for ytplayer.config
Lukáš Lalinský 3cfd000849 [youtube] More explicit player config JSON extraction (fixes )
Sergey M․ e568c2233e [youtube] Add test for multi page list of playlists
Sergey M․ 061a75edd6 [youtube] Extract base for entry list extractors and support multi page lists of playlists
Sergey M․ 136dadde95 [youtube:show] Rework in terms of playlists base extractor
Sergey M․ 0c14841585 [youtube:user:playlists] Add extractor (Closes )
Jaime Marquínez Ferrándiz 63b4295d20 [youtube:playlist] fix title extraction (fixes and )
Yen Chi Hsuan 50f84a9ae1 [youtube] Support new base.js html5 player
Sergey M․ 89ea063eeb [youtube] Clarify rationale for preferring a video info with token ()
Sergey M․ 44b2264fea [youtube] Prefer video_info with token available
Jaime Marquínez Ferrándiz 5c43afd40f [youtube:channel] Support age restricted channels (fixes )
Jaime Marquínez Ferrándiz 9170ca5b16 [youtube:channel] Fix test
Sergey M․ 648e6a1ffe [youtube] Generalize playlist entries extraction (Closes , closes )
Philipp Hagemeister 2b3c254678 [youtube:channel] Correct 404 handling
Previously, when we encountered a 404 - such as youtube-dl https://www.youtube.com/ohJeiboh8oorehai - we crashed with a regexp error. Instead, make sure to go on and eventually report a 404.
Philipp Hagemeister 287be8c615 [youtube:truncated_url] Add ?t=
Sometimes found in links - ?t=123&v=ABCD starts the video at position 123.
Jaime Marquínez Ferrándiz 4003bd82b0 [youtube:shows] Use https
remitamine 8801255d7d [youtube] fix show extraction (fixes )
Closes )
Sergey M․ 515fc8776f [youtube] Use encode_dict
Sergey M․ aabc2be693 [youtube] Simplify and extract more metadata from url_encoded_fmt_stream_map (Closes )
Anssi Hannula c9afb51cea [youtube] Fix missing format details for 60fps DASH formats
60fps DASH formats do not appear in the DASH manifest, but the non-DASH
video info page does contain additional parameters for DASH formats that
we can parse.

Use those when they exist.

This fixes "bestvideo" not selecting 60fps formats over similar 30fps
formats just because the file size is unknown.
Jaime Marquínez Ferrándiz 4bc8eec4eb [youtube] Adapt player version regex to handle urls ending in '/html5player-new.js'
It was always extracting 'new' as the version, breaking the cache system.
Sergey M․ cbaed4bb5e [youtube] Expand _VALID_URL to support vid.plus
Sergey M․ f74a7348f6 [youtube:search_url] Fix extraction (Closes )
Sergey M․ 041bc3adc5 [youtube] Simplify two-factor authentication
reddraggone9 9303ce3e69 [youtube] Fix two-factor authentication
Sergey M․ f57b7835e2 [youtube] Update tests
Sergey M․ 34952f09e1 [youtube] Add age limit to tests
Sergey M․ 34a7de2970 [youtube] Skip download for multiple v= test