Commit Graph

772 Commits (1d9bf655e68c873dc1f04739640046c43a1443d5)

Author SHA1 Message Date
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
Puck Meerburg 11b5605815 [youtube] Use the first v= argument in the URL
This is according to how youtube handles multiple v= values in one URL.
Before this, it was possible to make a single URL show up differently
 on youtube itself, and if you downloaded/viewed it with youtube-dl/mpv
Jaime Marquínez Ferrándiz 34866b4836 Merge remote-tracking branch 'dstftw/multifeed-videos' (closes )
Sergey M․ 5e1eddb939 [youtube] Show info message for multifeed videos according to noplaylist option
Sergey M․ 000b6b5ae5 [youtube] Improve tags extraction and add test
Purdea Andrei a6f774e901 [youtube]: tags key in info jason is now a list
Purdea Andrei f171bc8b59 [youtube] save keywords in info jason when --write-info-json is used
Jaime Marquínez Ferrándiz 4c6bd5b5b6 [youtube] Use 'vp8' and 'vp9' in lowercase (fixes )
That's how YouTube reports them in their DASH manifest.
Sergey M․ d8f0a9ecea [youtube] Respect noplaylist for multifeed videos
Sergey M․ cf7e015f25 [youtube] Add support for multifeed videos
Sergey M․ 678e436f2e [youtube] Handle empty allowed regions (Closes )
Sergey M. cdad742700 Merge pull request from jaimeMF/extract_start_time
[youtube] Extract start_time
Jaime Marquínez Ferrándiz 2929fa0e79 [youtube] Also look into the 'start' field for start_time
Jaime Marquínez Ferrándiz 297a564bee [youtube] Extract end_time
Jaime Marquínez Ferrándiz 87dc451108 [youtube] Don't use the DASH manifest from 'get_video_info' if 'use_cipher_signature' is True ()
Currently they give a 403 Forbidden error.
Jaime Marquínez Ferrándiz 7c80519cbf [youtube] Extract start_time
From the 't=*' in the url.
Currently youtube-dl doesn't use the value, but it was requested for the mpv plugin.
Jaime Marquínez Ferrándiz 2fe1ff8582 [youtube] Set 'is_live'
Jaime Marquínez Ferrándiz 17ee98e1a5 [youtube] Fix upload_date in test
Jaime Marquínez Ferrándiz 2ee8f5d80f Merge remote-tracking branch 'yan12125/download-dash-segments' ()
Sergey M․ 7fd002c006 [youtube] Use compat_urllib_parse_unquote and compat_urllib_parse_unquote_plus
Sergey M․ 77c6fb5b24 [youtube] Make further DASH manifests not fatal after succeeded one
Sergey M․ 9d0b581fea [youtube] Prefer meta for upload date and modernize
Sergey M․ f0714c9f86 [youtube] Speed up upload date regex ()
Sergey M. dc2bd20e55 Merge pull request from dstftw/use-codecs-from-dash-manifest
[youtube] Pick up codecs info from DASH manifest when not set explicitly
Sergey M. c608ee491f Merge pull request from dstftw/union-itags-from-multiple-dashmpd
[youtube] Extract formats from multiple DASH manifests (Closes )
Sergey M․ c93d53f5e3 [youtube] Fix likes/dislike extraction
Sergey M․ da77d856a1 [youtube] Add test for
Sergey M․ 0a3cf9ad3d [youtube] Skip get_video_info requests when --youtube-skip-dash-manifest is specified
Sergey M․ bc93bdb5bb [youtube] Fix reference before assignment for video_info
Yen Chi Hsuan af214c3a79 [youtube] More useful messages for georestricted videos ()
Sergey M․ d80265ccd6 [youtube] Simplify non-DASH formats exclusion
Sergey M․ 1b5a1ae257 [youtube] Pick up codecs info from DASH manifest when not set explicitly
Sergey M․ d8d24a922a [youtube] Extract formats from multiple DASH manifests (Closes )
DASH manifest pointed by dashmpd from the video webpage and one pointed by get_video_info may
be different (namely different itag set) - some itags are missing from DASH manifest pointed by
webpage's dashmpd, some - from DASH manifest pointed by get_video_info's dashmpd).
The general idea is to take a union of itags of both DASH manifests (for example video with such
'manifest behavior' see https://github.com/rg3/youtube-dl/issues/6093).
Sergey M․ c9bebed294 [youtube] Add itag 59 and 78 (Closes )
Sergey M․ 02175a7986 [youtube:search] Fix search query (Closes )
Yen Chi Hsuan 8a1a26ce4c [youtube] Add a test for the DASH segment downloader
Yen Chi Hsuan 0c8662d2b6 [youtube] Fix a TypeError caused by 4da31bd566
Jaime Marquínez Ferrándiz 70219b0f43 [youtube:playlist] Use an iterator for the entries (closes )
So that '--playlist-end' downloads only the required pages.
Yen Chi Hsuan e1b9322b09 [youtube] Restricter DASH signature pattern
A problematic DASH url is:
https://manifest.googlevideo.com/api/manifest/dash/mm/35/key/yt5/ip/140.112.247.145/ms/pm/mv/s/mt/1433794435/id/o-AD2Od_dsOlAUYPu03ZsVWKSbGEbCJJrMp9vnXGhnyRhd/mn/sn-aigllm7r/sparams/as%2Chfr%2Cid%2Cip%2Cipbits%2Citag%2Cmm%2Cmn%2Cms%2Cmv%2Cnh%2Cpl%2Cplayback_host%2Crequiressl%2Csource%2Cexpire/fexp/9406009%2C9406821%2C9407575%2C9408142%2C9408420%2C9408710%2C9409121%2C9409208%2C9412514%2C9412780%2C9413208%2C9413426%2C9413476%2C9413503%2C9415304%2C9415753/upn/viDQrs8SnmE/as/fmp4_audio_clear%2Cwebm_audio_clear%2Cfmp4_sd_hd_clear%2Cwebm_sd_hd_clear%2Cwebm2_sd_hd_clear/playback_host/r4---sn-aigllm7r.googlevideo.com/ipbits/0/requiressl/yes/pl/20/itag/0/source/youtube/expire/1433824806/nh/EAQ/signature/81ABE6391E351BA495F5B041B00FF1257A353318.1A6E48ABB74E8F4AE73CA2CB1F963FC34E33DEE7/sver/3/hfr/1
Yen Chi Hsuan 4da31bd566 [youtube] Fix a FutureWarning from xml.etree.ElementTree
Sergey M․ 3d8e9573a4 [youtube:channel] Improve channel id extraction ()
Yen Chi Hsuan 423d2be5f8 [downloader/dash] Rename the protocol
'http_dash_segments' looks more like a protocol name than
'dash_segments'
Yen Chi Hsuan b9258c6178 [YoutubeDL] Change how DashSegmentsFD is selected
Yen Chi Hsuan 6800d3372f [YoutubeDL] Support DASH manifest downloading
Ivan Kozik d2a9de78df [youtube] Construct a playlist URL in case the page is missing one
This fixes jumping from user/channel -> playlist for some users like
https://www.youtube.com/user/BitcoinFoundation

This also removes the superfluous log message
"add --no-playlist to just download video VIDEOID"
when downloading a user/channel.
Sergey M․ 386bdfa698 [youtube:user] Workaround 35 pages limitation (Closes )
Jaime Marquínez Ferrándiz 04b3b3df05 [youtube] Remove the nondash formats (fixes )
Since we use fixed values for some fields like width and height they can be wrong, and would get picked by some formats filters.
For example for https://www.youtube.com/watch?v=EQCrhbBxsjA the biggest height is 720 and for nondash formats it's set to 1440, so -f 'bestvideo[height>=1200]+bestaudio' would incorrectly pick the nondash format, instead it should report that the requested format is not available.
Sergey M․ 62c95fd5fc [youtube:feed] Check each 'load more' portion for unique video ids
Sergey M․ 25f14e9f93 [youtube] Separate feed extractor
Jaime Marquínez Ferrándiz 2bc4330303 [youtube:history] Fix extraction (fixes )
It uses the same method as YoutubeSubscriptionsIE, if other feed starts using it we should consider using base class.
Yen Chi Hsuan 39b62db116 [youtube] Catch more alert messages (closes )
Sergey M․ 9dd8e46a2d [youtube:search] Cancel out _TESTS
Jaime Marquínez Ferrándiz b4c0806963 [youtube:ytsearch] Use the same system as the search webpage (fixes )
The gdata api V2 was deprecated and according to http://youtube-eng.blogspot.com.es/2014/03/committing-to-youtube-data-api-v3_4.html remains available until April 20, 2015.
Sergey M․ cc38fa6cfb [youtube] Remove unused import
Sergey M․ 6de5dbafee [youtube:channel] Make `extract_videos_from_page` static
Sergey M․ 60bf45c80d [youtube:channel] Specify first page download message
Sergey M․ eb0f3e7ec0 [youtube:user] Extract in terms of `load_more_widget_html`
Sergey M․ ed553379df [youtube:ytsearch] Temporary workaround ()
Sergey M․ 8f02ad4f12 [youtube] Simplify
Sergey M․ 7bd930368c [youtube] Remove unused variable
Sergey M․ fb69240ca0 [youtube] Extract video titles for channel playlist if possible (Closes )
Yen Chi Hsuan de5c545648 [youtube] Skip WebVTT in DASH manifest ()
Sergey M․ e40bd5f06b [youtube] Simplify url_encoded_fmt_stream_map check
Sergey M․ 06b491eb7b [youtube] Add test for
Yen Chi Hsuan 3a9fadd6df [youtube] Enhance url_encoded_fmt_stream_map checking (fix )
Jaime Marquínez Ferrándiz 157e9e5aa5 [youtube:watchlater] Remove unused properties and fix tests
Sergey M․ 7e17ec8c71 [youtube] Clarify some IE_NAMEs
Sergey M․ 448830ce7b [youtube:watchlater] Extract watchlater as playlist (Closes )
Sergey M․ 98998cded6 [youtube:search_url] Fix extraction (Closes )
Sergey M․ 99209c2916 [youtube] Extract UL playlists as mixes (Closes )
Jaime Marquínez Ferrándiz bfc993cc91 Merge branch 'subtitles-rework'
(Closes PR )
Philipp Hagemeister 785521bf4f [youtube] Remove useless if
Philipp Hagemeister 6d1a55a521 [youtube] Show entire player URL when -v is given
Jaime Marquínez Ferrándiz 360e1ca5cc [youtube] Convert to new subtitles system
The automatic captions are stored in the 'automactic_captions' field, which is used if no normal subtitles are found for an specific language.
Jaime Marquínez Ferrándiz 2d30521ab9 [youtube] Extract average rating (closes )
Jaime Marquínez Ferrándiz ba61796458 [youtube] Don't override format info from the dash manifest (fixes )
Philipp Hagemeister acf757f42e [youtube] Complete test definition
Philipp Hagemeister 70fca8d694 [youtube] Remove unused import
Philipp Hagemeister 6449cd807e [youtube] Fall back to embed webpage when content is blocked on main (Fixes )
Philipp Hagemeister c1708b89c0 [youtube:truncated_url] Add hl= forms ()
Philipp Hagemeister b95aab8482 [youtube:truncated_url] Add x-yt-cl URLs ()
Philipp Hagemeister 62cd676c74 [youtube] Fixup DASH m4a headers
This fixes , , , , , .
Sergey M․ aaeb86f682 [youtube] Add test for
Phil Kulak a9b6b5cd15 Looks like Google switched to a new JS compiler that includes dollar signs in function names.
Philipp Hagemeister 6271f1cad9 [youtube|ffmpeg] Automatically correct video with non-square pixels (Fixes )
Philipp Hagemeister 230b2287dd [youtube] Add acodec information
The codec seems to be consistently aac, so state that in our metadata.
Philipp Hagemeister 9ed99402f5 [youtube] Fix test case
Jaime Marquínez Ferrándiz 76b3c61012 [youtube] Add formats 308 and 315 (closes )
Philipp Hagemeister ee61f6f3e2 [youtube] Handle cases where format comes without a preference (Fixes )
Jaime Marquínez Ferrándiz 2f985f4bb4 [youtube:toplist] Remove extractor
They use now normal playlists (their id is PL*).
Philipp Hagemeister e65566a9cc [youtube] Correct handling when DASH manifest is not necessary to find all formats
Philipp Hagemeister 772fd5cc44 [youtube] Add a pseudo-extractor for truncated YouTube video IDs ()
Jaime Marquínez Ferrándiz 60e47a2699 [youtube] Use '_download_xml' for getting the available subtitles
Jaime Marquínez Ferrándiz 7d900ef1bf [youtube] Add support for automatically translated subtitles (fixes )
They have a manually uploaded subtitles track and YouTube can transtale it.
Sergey M․ fccae2b911 [youtube] Add test for age-gate video with encrypted signature
Cédric Luthi beb95e7781 [youtube] Fix videos with age gate and encrypted signatures
The `sts` value is available on the embed webpage, get it from there.

Fixes .
Philipp Hagemeister 7af808a5ef Improve code style
Philipp Hagemeister 84d84211ac [youtube:feeds] (Fixes )
Jaime Marquínez Ferrándiz 4b7df0d30c [youtube:playlist] Work around buggy playlists (fixes )
They show a "Load more" button, but they don't have more videos.
The continuation url in the json file was a link to itself, so we ended up in an infinite loop.
Philipp Hagemeister 60620368d7 [youtube] Fix player ID detection
Jaime Marquínez Ferrándiz 26c06f0c51 [youtube:playlist] Remove unused property
Jaime Marquínez Ferrándiz 23d3608c6b [youtube:channel] Fix extraction (fixes )
It uses now the same pagination system as playlists
Philipp Hagemeister cbe2bd914d [youtube] Amend test
Philipp Hagemeister 75111274ed [youtube] Do not warn if DASH manifest is missing ()
Philipp Hagemeister 624dcebff6 [youtube] Make category optional ()
Philipp Hagemeister 9684f17cde Merge remote-tracking branch 'akretz/youtube_fix'
Philipp Hagemeister e52a40abf7 [youtube] Add test case for
Adrian Kretz 24270b0301 [youtube] The case that 'url_encoded_fmt_stream_map' or 'adaptive_fmts' is the empty string is handled accordingly (fixes )
Philipp Hagemeister 4bb4a18876 [youtube] Fix imports
Philipp Hagemeister da27660014 [youtube] Pass in all variables to DASH manifest (Fixes )
Philipp Hagemeister 774e208f94 [youtube] Handle missing DASH manifest (Fixes , fixes )
Philipp Hagemeister b82f815f37 Allow iterators for playlist result entries
Philipp Hagemeister 9ff6772790 [youtube] Modernize
Philipp Hagemeister 810fb84d5e pep8 and minor beautification all around
Jaime Marquínez Ferrándiz c41a9650c3 [youtube] Extract framerate from the dash manifest
Not all videos have 60 fps, for example they can have 48 fps.
Jaime Marquínez Ferrándiz c522adb1f0 [youtube] Add a normal age-gate test video
Jaime Marquínez Ferrándiz 7160532d41 [youtube] Simplify code for getting the dash manifest url
video_info contains now the 'ytplayer.config.args' dictionary
Jaime Marquínez Ferrándiz 4e62ebe250 [youtube] Try to extract the video_info from the webpage before requesting the 'get_video_info' pages
The YouTube player doesn't seem to use them except for embedded videos, so we can skip a network request.
But they still provide better error mesagges (for removed videos for example).
Jaime Marquínez Ferrándiz b766eb2707 [youtube] Update test
Jaime Marquínez Ferrándiz 10a404c335 [youtube] Add format 313 (fixes )
Jaime Marquínez Ferrándiz 42939b6129 [youtube] Use a cookie for seeting the language
This way, we don't have to do an aditional request
Jaime Marquínez Ferrándiz 37ea8164d3 [youtube] Don't confirm age when initializing
It seems that all the videos with age restriction use now the age gate method, which doesn't require any confirmation.
Philipp Hagemeister 0792d5634e [youtube] Remove useless u prefixes
Philipp Hagemeister 27f8b0994e Merge remote-tracking branch 'jtwaleson/master'
Jouke Waleson 9e1a5b8455 PEP8: applied even more rules
Philipp Hagemeister 784b6d3a9b Merge remote-tracking branch 'jtwaleson/master'
Jouke Waleson 8bcc875676 PEP8: more applied
Jouke Waleson 5f6a1245ff PEP8 applied
Philipp Hagemeister f3a3407226 [youtube] Clarify keywords
Philipp Hagemeister aa79ac0c82 [youtube] Support controversy videos (Fixes )
Philipp Hagemeister 0857baade3 [youtube] Add webm audio formats (Fixes )
Philipp Hagemeister 23ad44b57b [youtube] Better error message for DASH manifest
Aaron Wojnowski 894dd8682e Fix YouTube signature extraction.
Philipp Hagemeister a1cf99d03a [YoutubeDL] Add playlist_id and playlist_title fields (Fixes )
Philipp Hagemeister 20436c30c9 [youtube] Clarify output
Philipp Hagemeister 94bd361318 [youtube] Skip sts if missing (Fixes , fixes )
Philipp Hagemeister 0d2c141865 [youtube] Detect formats 298 et al as mp4 (Fixes )
Philipp Hagemeister 7b6de3728a [youtube] Add format 266 (Fixes )
Philipp Hagemeister a51d3aa001 [youtube] Add support for formats 302 and 303 (Fixes )
Philipp Hagemeister fbb21cf528 [youtube] Add formats 298, 299 (Fixes )
Philipp Hagemeister f46a8702cc [youtube:playlist] Fix test title
Philipp Hagemeister bfc2bedcfc [youtube] Make confirm_age non-fatal ()
Philipp Hagemeister 6b445558ff [youtube] Only set language when necessary
We only need to set the language when we are using a login; otherwise it will always be English.
Philipp Hagemeister 1cc887cbf0 [youtube] Add support for format 278
Philipp Hagemeister 203fb43f36 [youtube] Download DASH manifest by default (Closes )
Philipp Hagemeister a1f934b171 [youtube] Correct language cookie handling
Philipp Hagemeister e2dce53781 [youtube] Always request webpage in English (Fixes )
Philipp Hagemeister 9c44d2429b [vimeo:likes] Support large like lists (Fixes )
Philipp Hagemeister 6b08cdf626 [youtube] Support for embedded /p players (Fixes )
Philipp Hagemeister ac7553d031 [youtube] Support embed/videoseries URLs ()
Philipp Hagemeister cdc628a498 [youtube] Move more tests to extractors
Philipp Hagemeister 69ea8ca42c [youtube] Remove superfluous unicode specifiers
Philipp Hagemeister 4bc3a23ec5 [youtube] Modernize
Philipp Hagemeister 78caa52aea [youtube] Modernize
Philipp Hagemeister 310d75d141 [youtube] Correct description in test case
Philipp Hagemeister 9291475f7d [youtube] Move more tests to Playlist IE, and simply suitable.
Philipp Hagemeister 81127aa55d [youtube] Move playlist test to extractor
Philipp Hagemeister 9b583dca4c Merge remote-tracking branch 'drags/yt-feed-loadmore'
Jaime Marquínez Ferrándiz edb53e2dc3 [youtube] Don't make the url protocol optional
The generic extractor will add it.
Philipp Hagemeister a0e07d3161 [youtube] Move cache into its own module
Philipp Hagemeister c9cc0bf57b [youtube:playlist] PEP8
Jaime Marquínez Ferrándiz 9ea9b61448 Merge branch 'master' of github.com:rg3/youtube-dl
Jaime Marquínez Ferrándiz 1ed5b5c9c8 [youtube:subscriptions] Fix extraction (fixes )
Philipp Hagemeister 55f7bd2dcc [youtube] Fix category extraction
Philipp Hagemeister 3e7c12240c [youtube] Test for like_count and dislike_count ()
Jaime Marquínez Ferrándiz f30a38be8b [youtube] Fix extraction of like and dislike count (fixes )
Philipp Hagemeister 9480d1a566 Merge remote-tracking branch 'riking/twofactor'
Philipp Hagemeister bd9820c937 Merge remote-tracking branch 'liudongmiao/patch-subtitle'
Philipp Hagemeister 55db73efdf [youtube] tag 171 is 128KBits (Fixes )