Commit Graph

512 Commits (3cfd000849208b58dab4f78d1486d3f24552009e)

Author SHA1 Message Date
Yen Chi Hsuan af214c3a79 [youtube] More useful messages for georestricted videos (#5716) 9 years ago
Sergey M․ d80265ccd6 [youtube] Simplify non-DASH formats exclusion 9 years ago
Sergey M․ 1b5a1ae257 [youtube] Pick up codecs info from DASH manifest when not set explicitly 9 years ago
Sergey M․ d8d24a922a [youtube] Extract formats from multiple DASH manifests (Closes #6093)
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).
9 years ago
Sergey M․ c9bebed294 [youtube] Add itag 59 and 78 (Closes #5979) 9 years ago
Sergey M․ 02175a7986 [youtube:search] Fix search query (Closes #5988) 9 years ago
Yen Chi Hsuan 8a1a26ce4c [youtube] Add a test for the DASH segment downloader 9 years ago
Yen Chi Hsuan 0c8662d2b6 [youtube] Fix a TypeError caused by 4da31bd566 9 years ago
Jaime Marquínez Ferrándiz 70219b0f43 [youtube:playlist] Use an iterator for the entries (closes #5935)
So that '--playlist-end' downloads only the required pages.
9 years ago
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
9 years ago
Yen Chi Hsuan 4da31bd566 [youtube] Fix a FutureWarning from xml.etree.ElementTree 9 years ago
Sergey M․ 3d8e9573a4 [youtube:channel] Improve channel id extraction (#5904) 9 years ago
Yen Chi Hsuan 423d2be5f8 [downloader/dash] Rename the protocol
'http_dash_segments' looks more like a protocol name than
'dash_segments'
9 years ago
Yen Chi Hsuan b9258c6178 [YoutubeDL] Change how DashSegmentsFD is selected 9 years ago
Yen Chi Hsuan 6800d3372f [YoutubeDL] Support DASH manifest downloading 9 years ago
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.
9 years ago
Sergey M․ 386bdfa698 [youtube:user] Workaround 35 pages limitation (Closes #5778) 9 years ago
Jaime Marquínez Ferrándiz 04b3b3df05 [youtube] Remove the nondash formats (fixes #5774)
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.
9 years ago
Sergey M․ 62c95fd5fc [youtube:feed] Check each 'load more' portion for unique video ids 9 years ago
Sergey M․ 25f14e9f93 [youtube] Separate feed extractor 9 years ago
Jaime Marquínez Ferrándiz 2bc4330303 [youtube:history] Fix extraction (fixes #5702)
It uses the same method as YoutubeSubscriptionsIE, if other feed starts using it we should consider using base class.
9 years ago
Yen Chi Hsuan 39b62db116 [youtube] Catch more alert messages (closes #5074) 9 years ago
Sergey M․ 9dd8e46a2d [youtube:search] Cancel out _TESTS 9 years ago
Jaime Marquínez Ferrándiz b4c0806963 [youtube:ytsearch] Use the same system as the search webpage (fixes #5483)
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.
9 years ago
Sergey M․ cc38fa6cfb [youtube] Remove unused import 9 years ago
Sergey M․ 6de5dbafee [youtube:channel] Make `extract_videos_from_page` static 9 years ago
Sergey M․ 60bf45c80d [youtube:channel] Specify first page download message 9 years ago
Sergey M․ eb0f3e7ec0 [youtube:user] Extract in terms of `load_more_widget_html` 9 years ago
Sergey M․ ed553379df [youtube:ytsearch] Temporary workaround (#5483) 9 years ago
Sergey M․ 8f02ad4f12 [youtube] Simplify 9 years ago
Sergey M․ 7bd930368c [youtube] Remove unused variable 9 years ago
Sergey M․ fb69240ca0 [youtube] Extract video titles for channel playlist if possible (Closes #4971) 9 years ago
Yen Chi Hsuan de5c545648 [youtube] Skip WebVTT in DASH manifest (#5297) 9 years ago
Sergey M․ e40bd5f06b [youtube] Simplify url_encoded_fmt_stream_map check 9 years ago
Sergey M․ 06b491eb7b [youtube] Add test for #5361 9 years ago
Yen Chi Hsuan 3a9fadd6df [youtube] Enhance url_encoded_fmt_stream_map checking (fix #5361) 9 years ago
Jaime Marquínez Ferrándiz 157e9e5aa5 [youtube:watchlater] Remove unused properties and fix tests 9 years ago
Sergey M․ 7e17ec8c71 [youtube] Clarify some IE_NAMEs 9 years ago
Sergey M․ 448830ce7b [youtube:watchlater] Extract watchlater as playlist (Closes #5280) 9 years ago
Sergey M․ 98998cded6 [youtube:search_url] Fix extraction (Closes #5155) 9 years ago
Sergey M․ 99209c2916 [youtube] Extract UL playlists as mixes (Closes #5040) 9 years ago
Jaime Marquínez Ferrándiz bfc993cc91 Merge branch 'subtitles-rework'
(Closes PR #4964)
9 years ago
Philipp Hagemeister 785521bf4f [youtube] Remove useless if 9 years ago
Philipp Hagemeister 6d1a55a521 [youtube] Show entire player URL when -v is given 9 years ago
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.
9 years ago
Jaime Marquínez Ferrándiz 2d30521ab9 [youtube] Extract average rating (closes #2362) 9 years ago
Jaime Marquínez Ferrándiz ba61796458 [youtube] Don't override format info from the dash manifest (fixes #4911) 9 years ago
Philipp Hagemeister acf757f42e [youtube] Complete test definition 9 years ago
Philipp Hagemeister 70fca8d694 [youtube] Remove unused import 9 years ago
Philipp Hagemeister 6449cd807e [youtube] Fall back to embed webpage when content is blocked on main (Fixes #4717) 9 years ago
Philipp Hagemeister c1708b89c0 [youtube:truncated_url] Add hl= forms (#4799) 9 years ago
Philipp Hagemeister b95aab8482 [youtube:truncated_url] Add x-yt-cl URLs (#4773) 9 years ago
Philipp Hagemeister 62cd676c74 [youtube] Fixup DASH m4a headers
This fixes #2288, #2506, #2607, #3681, #4741, #4767.
9 years ago
Sergey M․ aaeb86f682 [youtube] Add test for #4706 10 years ago
Phil Kulak a9b6b5cd15 Looks like Google switched to a new JS compiler that includes dollar signs in function names. 10 years ago
Philipp Hagemeister 6271f1cad9 [youtube|ffmpeg] Automatically correct video with non-square pixels (Fixes #4674) 10 years ago
Philipp Hagemeister 230b2287dd [youtube] Add acodec information
The codec seems to be consistently aac, so state that in our metadata.
10 years ago
Philipp Hagemeister 9ed99402f5 [youtube] Fix test case 10 years ago
Jaime Marquínez Ferrándiz 76b3c61012 [youtube] Add formats 308 and 315 (closes #4650) 10 years ago
Philipp Hagemeister ee61f6f3e2 [youtube] Handle cases where format comes without a preference (Fixes #4648) 10 years ago
Jaime Marquínez Ferrándiz 2f985f4bb4 [youtube:toplist] Remove extractor
They use now normal playlists (their id is PL*).
10 years ago
Philipp Hagemeister e65566a9cc [youtube] Correct handling when DASH manifest is not necessary to find all formats 10 years ago
Philipp Hagemeister 772fd5cc44 [youtube] Add a pseudo-extractor for truncated YouTube video IDs (#4610) 10 years ago
Jaime Marquínez Ferrándiz 60e47a2699 [youtube] Use '_download_xml' for getting the available subtitles 10 years ago
Jaime Marquínez Ferrándiz 7d900ef1bf [youtube] Add support for automatically translated subtitles (fixes #4555)
They have a manually uploaded subtitles track and YouTube can transtale it.
10 years ago
Sergey M․ fccae2b911 [youtube] Add test for age-gate video with encrypted signature 10 years ago
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 #4108.
10 years ago
Philipp Hagemeister 7af808a5ef Improve code style 10 years ago
Philipp Hagemeister 84d84211ac [youtube:feeds] (Fixes #4486) 10 years ago
Jaime Marquínez Ferrándiz 4b7df0d30c [youtube:playlist] Work around buggy playlists (fixes #4449)
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.
10 years ago
Philipp Hagemeister 60620368d7 [youtube] Fix player ID detection 10 years ago
Jaime Marquínez Ferrándiz 26c06f0c51 [youtube:playlist] Remove unused property 10 years ago
Jaime Marquínez Ferrándiz 23d3608c6b [youtube:channel] Fix extraction (fixes #4435)
It uses now the same pagination system as playlists
10 years ago
Philipp Hagemeister cbe2bd914d [youtube] Amend test 10 years ago
Philipp Hagemeister 75111274ed [youtube] Do not warn if DASH manifest is missing (#4442) 10 years ago
Philipp Hagemeister 624dcebff6 [youtube] Make category optional (#4442) 10 years ago
Philipp Hagemeister 9684f17cde Merge remote-tracking branch 'akretz/youtube_fix' 10 years ago
Philipp Hagemeister e52a40abf7 [youtube] Add test case for #4431 10 years ago
Adrian Kretz 24270b0301 [youtube] The case that 'url_encoded_fmt_stream_map' or 'adaptive_fmts' is the empty string is handled accordingly (fixes #4431) 10 years ago
Philipp Hagemeister 4bb4a18876 [youtube] Fix imports 10 years ago
Philipp Hagemeister da27660014 [youtube] Pass in all variables to DASH manifest (Fixes #4424) 10 years ago
Philipp Hagemeister 774e208f94 [youtube] Handle missing DASH manifest (Fixes #4421, fixes #4420) 10 years ago
Philipp Hagemeister b82f815f37 Allow iterators for playlist result entries 10 years ago
Philipp Hagemeister 9ff6772790 [youtube] Modernize 10 years ago
Philipp Hagemeister 810fb84d5e pep8 and minor beautification all around 10 years ago
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.
10 years ago
Jaime Marquínez Ferrándiz c522adb1f0 [youtube] Add a normal age-gate test video 10 years ago
Jaime Marquínez Ferrándiz 7160532d41 [youtube] Simplify code for getting the dash manifest url
video_info contains now the 'ytplayer.config.args' dictionary
10 years ago
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).
10 years ago
Jaime Marquínez Ferrándiz b766eb2707 [youtube] Update test 10 years ago
Jaime Marquínez Ferrándiz 10a404c335 [youtube] Add format 313 (fixes #4339) 10 years ago
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
10 years ago
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.
10 years ago
Philipp Hagemeister 0792d5634e [youtube] Remove useless u prefixes 10 years ago
Philipp Hagemeister 27f8b0994e Merge remote-tracking branch 'jtwaleson/master' 10 years ago
Jouke Waleson 9e1a5b8455 PEP8: applied even more rules 10 years ago
Philipp Hagemeister 784b6d3a9b Merge remote-tracking branch 'jtwaleson/master' 10 years ago
Jouke Waleson 8bcc875676 PEP8: more applied 10 years ago
Jouke Waleson 5f6a1245ff PEP8 applied 10 years ago
Philipp Hagemeister f3a3407226 [youtube] Clarify keywords 10 years ago