Commit Graph

595 Commits (6461f2b7ec5fa0114d4bb38ca27c0f72edff8e23)

Author SHA1 Message Date
Sergey M․ 041bc3adc5 [youtube] Simplify two-factor authentication 9 years ago
reddraggone9 9303ce3e69 [youtube] Fix two-factor authentication 9 years ago
Sergey M․ f57b7835e2 [youtube] Update tests 9 years ago
Sergey M․ 34952f09e1 [youtube] Add age limit to tests 9 years ago
Sergey M․ 34a7de2970 [youtube] Skip download for multiple v= test 9 years ago
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
9 years ago
Jaime Marquínez Ferrándiz 34866b4836 Merge remote-tracking branch 'dstftw/multifeed-videos' (closes #6360) 9 years ago
Sergey M․ 5e1eddb939 [youtube] Show info message for multifeed videos according to noplaylist option 9 years ago
Sergey M․ 000b6b5ae5 [youtube] Improve tags extraction and add test 9 years ago
Purdea Andrei a6f774e901 [youtube]: tags key in info jason is now a list 9 years ago
Purdea Andrei f171bc8b59 [youtube] save keywords in info jason when --write-info-json is used 9 years ago
Jaime Marquínez Ferrándiz 4c6bd5b5b6 [youtube] Use 'vp8' and 'vp9' in lowercase (fixes #6358)
That's how YouTube reports them in their DASH manifest.
9 years ago
Sergey M․ d8f0a9ecea [youtube] Respect noplaylist for multifeed videos 9 years ago
Sergey M․ cf7e015f25 [youtube] Add support for multifeed videos 9 years ago
Sergey M․ 678e436f2e [youtube] Handle empty allowed regions (Closes #6351) 9 years ago
Sergey M. cdad742700 Merge pull request #6306 from jaimeMF/extract_start_time
[youtube] Extract start_time
9 years ago
Jaime Marquínez Ferrándiz 2929fa0e79 [youtube] Also look into the 'start' field for start_time 9 years ago
Jaime Marquínez Ferrándiz 297a564bee [youtube] Extract end_time 9 years ago
Jaime Marquínez Ferrándiz 87dc451108 [youtube] Don't use the DASH manifest from 'get_video_info' if 'use_cipher_signature' is True (#5118)
Currently they give a 403 Forbidden error.
10 years ago
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.
10 years ago
Jaime Marquínez Ferrándiz 2fe1ff8582 [youtube] Set 'is_live' 10 years ago
Jaime Marquínez Ferrándiz 17ee98e1a5 [youtube] Fix upload_date in test 10 years ago
Jaime Marquínez Ferrándiz 2ee8f5d80f Merge remote-tracking branch 'yan12125/download-dash-segments' (#5886) 10 years ago
Sergey M․ 7fd002c006 [youtube] Use compat_urllib_parse_unquote and compat_urllib_parse_unquote_plus 10 years ago
Sergey M․ 77c6fb5b24 [youtube] Make further DASH manifests not fatal after succeeded one 10 years ago
Sergey M․ 9d0b581fea [youtube] Prefer meta for upload date and modernize 10 years ago
Sergey M․ f0714c9f86 [youtube] Speed up upload date regex (#6125) 10 years ago
Sergey M. dc2bd20e55 Merge pull request #6098 from dstftw/use-codecs-from-dash-manifest
[youtube] Pick up codecs info from DASH manifest when not set explicitly
10 years ago
Sergey M. c608ee491f Merge pull request #6097 from dstftw/union-itags-from-multiple-dashmpd
[youtube] Extract formats from multiple DASH manifests (Closes #6093)
10 years ago
Sergey M․ c93d53f5e3 [youtube] Fix likes/dislike extraction 10 years ago
Sergey M․ da77d856a1 [youtube] Add test for #6093 10 years ago
Sergey M․ 0a3cf9ad3d [youtube] Skip get_video_info requests when --youtube-skip-dash-manifest is specified 10 years ago
Sergey M․ bc93bdb5bb [youtube] Fix reference before assignment for video_info 10 years ago
Yen Chi Hsuan af214c3a79 [youtube] More useful messages for georestricted videos (#5716) 10 years ago
Sergey M․ d80265ccd6 [youtube] Simplify non-DASH formats exclusion 10 years ago
Sergey M․ 1b5a1ae257 [youtube] Pick up codecs info from DASH manifest when not set explicitly 10 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).
10 years ago
Sergey M․ c9bebed294 [youtube] Add itag 59 and 78 (Closes #5979) 10 years ago
Sergey M․ 02175a7986 [youtube:search] Fix search query (Closes #5988) 10 years ago
Yen Chi Hsuan 8a1a26ce4c [youtube] Add a test for the DASH segment downloader 10 years ago
Yen Chi Hsuan 0c8662d2b6 [youtube] Fix a TypeError caused by 4da31bd566 10 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.
10 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
10 years ago
Yen Chi Hsuan 4da31bd566 [youtube] Fix a FutureWarning from xml.etree.ElementTree 10 years ago
Sergey M․ 3d8e9573a4 [youtube:channel] Improve channel id extraction (#5904) 10 years ago
Yen Chi Hsuan 423d2be5f8 [downloader/dash] Rename the protocol
'http_dash_segments' looks more like a protocol name than
'dash_segments'
10 years ago
Yen Chi Hsuan b9258c6178 [YoutubeDL] Change how DashSegmentsFD is selected 10 years ago
Yen Chi Hsuan 6800d3372f [YoutubeDL] Support DASH manifest downloading 10 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.
10 years ago
Sergey M․ 386bdfa698 [youtube:user] Workaround 35 pages limitation (Closes #5778) 10 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.
10 years ago
Sergey M․ 62c95fd5fc [youtube:feed] Check each 'load more' portion for unique video ids 10 years ago
Sergey M․ 25f14e9f93 [youtube] Separate feed extractor 10 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.
10 years ago
Yen Chi Hsuan 39b62db116 [youtube] Catch more alert messages (closes #5074) 10 years ago
Sergey M․ 9dd8e46a2d [youtube:search] Cancel out _TESTS 10 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.
10 years ago
Sergey M․ cc38fa6cfb [youtube] Remove unused import 10 years ago
Sergey M․ 6de5dbafee [youtube:channel] Make `extract_videos_from_page` static 10 years ago
Sergey M․ 60bf45c80d [youtube:channel] Specify first page download message 10 years ago
Sergey M․ eb0f3e7ec0 [youtube:user] Extract in terms of `load_more_widget_html` 10 years ago
Sergey M․ ed553379df [youtube:ytsearch] Temporary workaround (#5483) 10 years ago
Sergey M․ 8f02ad4f12 [youtube] Simplify 10 years ago
Sergey M․ 7bd930368c [youtube] Remove unused variable 10 years ago
Sergey M․ fb69240ca0 [youtube] Extract video titles for channel playlist if possible (Closes #4971) 10 years ago
Yen Chi Hsuan de5c545648 [youtube] Skip WebVTT in DASH manifest (#5297) 10 years ago
Sergey M․ e40bd5f06b [youtube] Simplify url_encoded_fmt_stream_map check 10 years ago
Sergey M․ 06b491eb7b [youtube] Add test for #5361 10 years ago
Yen Chi Hsuan 3a9fadd6df [youtube] Enhance url_encoded_fmt_stream_map checking (fix #5361) 10 years ago
Jaime Marquínez Ferrándiz 157e9e5aa5 [youtube:watchlater] Remove unused properties and fix tests 10 years ago
Sergey M․ 7e17ec8c71 [youtube] Clarify some IE_NAMEs 10 years ago
Sergey M․ 448830ce7b [youtube:watchlater] Extract watchlater as playlist (Closes #5280) 10 years ago
Sergey M․ 98998cded6 [youtube:search_url] Fix extraction (Closes #5155) 10 years ago
Sergey M․ 99209c2916 [youtube] Extract UL playlists as mixes (Closes #5040) 10 years ago
Jaime Marquínez Ferrándiz bfc993cc91 Merge branch 'subtitles-rework'
(Closes PR #4964)
10 years ago
Philipp Hagemeister 785521bf4f [youtube] Remove useless if 10 years ago
Philipp Hagemeister 6d1a55a521 [youtube] Show entire player URL when -v is given 10 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.
10 years ago
Jaime Marquínez Ferrándiz 2d30521ab9 [youtube] Extract average rating (closes #2362) 10 years ago
Jaime Marquínez Ferrándiz ba61796458 [youtube] Don't override format info from the dash manifest (fixes #4911) 10 years ago
Philipp Hagemeister acf757f42e [youtube] Complete test definition 10 years ago
Philipp Hagemeister 70fca8d694 [youtube] Remove unused import 10 years ago
Philipp Hagemeister 6449cd807e [youtube] Fall back to embed webpage when content is blocked on main (Fixes #4717) 10 years ago
Philipp Hagemeister c1708b89c0 [youtube:truncated_url] Add hl= forms (#4799) 10 years ago
Philipp Hagemeister b95aab8482 [youtube:truncated_url] Add x-yt-cl URLs (#4773) 10 years ago
Philipp Hagemeister 62cd676c74 [youtube] Fixup DASH m4a headers
This fixes #2288, #2506, #2607, #3681, #4741, #4767.
10 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
Philipp Hagemeister aa79ac0c82 [youtube] Support controversy videos (Fixes #4275) 10 years ago
Philipp Hagemeister 0857baade3 [youtube] Add webm audio formats (Fixes #4229) 10 years ago
Philipp Hagemeister 23ad44b57b [youtube] Better error message for DASH manifest 10 years ago
Aaron Wojnowski 894dd8682e Fix YouTube signature extraction. 10 years ago
Philipp Hagemeister a1cf99d03a [YoutubeDL] Add playlist_id and playlist_title fields (Fixes #4139) 10 years ago
Philipp Hagemeister 20436c30c9 [youtube] Clarify output 10 years ago
Philipp Hagemeister 94bd361318 [youtube] Skip sts if missing (Fixes #4095, fixes #4103) 10 years ago
Philipp Hagemeister 0d2c141865 [youtube] Detect formats 298 et al as mp4 (Fixes #4066) 10 years ago
Philipp Hagemeister 7b6de3728a [youtube] Add format 266 (Fixes #4055) 10 years ago
Philipp Hagemeister a51d3aa001 [youtube] Add support for formats 302 and 303 (Fixes #4060) 10 years ago
Philipp Hagemeister fbb21cf528 [youtube] Add formats 298, 299 (Fixes #4056) 10 years ago
Philipp Hagemeister f46a8702cc [youtube:playlist] Fix test title 10 years ago
Philipp Hagemeister bfc2bedcfc [youtube] Make confirm_age non-fatal (#4042) 10 years ago
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.
10 years ago
Philipp Hagemeister 1cc887cbf0 [youtube] Add support for format 278 10 years ago
Philipp Hagemeister 203fb43f36 [youtube] Download DASH manifest by default (Closes #3887) 10 years ago
Philipp Hagemeister a1f934b171 [youtube] Correct language cookie handling 10 years ago