Commit Graph

776 Commits

Author SHA1 Message Date
Sergey M․ c63ca0eef8
[youtube] Improve format filesize extraction (#16453) 2018-05-14 23:27:56 +07:00
Sergey M․ 84a9fef899
[youtube] Make uploader extraction non fatal (#16444) 2018-05-13 22:49:01 +07:00
Remita Amine 4c76aa0666 [youtube] fix extraction for embed restricted live streams(fixes #16433) 2018-05-13 13:20:16 +01:00
Niklas Haas 30226342ab [youtube] Correctly disable polymer on all requests
Rather than just the one that use the _download_webpage helper. The need
for this was made apparent by 0fe7783e, which refactored
_download_json in a way that completely avoids the use of
_download_webpage, thus breaking youtube.

Fixes #16323
2018-04-29 22:35:16 +07:00
Sergey M․ 70d35d166c
[youtube] Add ability to authenticate with cookies 2018-04-22 06:08:05 +07:00
Sergey M․ 3853309fe2
[youtube:feed] Implement lazy playlist extraction (closes #10184) 2018-04-22 06:07:32 +07:00
Sergey M․ 870f3bfc63
[ytsearch] Fix flat title extraction (closes #11260, closes #15681) 2018-02-23 03:43:42 +07:00
Sergey M․ ea69624992
[youtube] Handle shared URLs with generic extractor (closes #14303) 2018-02-15 22:33:11 +07:00
Sergey M․ e4a60912b8
[youtube] Enforce using chunked HTTP downloading for DASH formats 2018-02-04 07:17:26 +07:00
Yen Chi Hsuan bbb7c3f7e9 [youtube] Extract precise error messages (closes #15284) 2018-01-25 22:30:33 +08:00
Sergey M․ e7f3529f68
[youtube:live] Improve live detection (closes #15365) 2018-01-20 17:57:20 +07:00
Sergey M․ 391dd6f094
[youtube] Fix live streams extraction (closes #15202) 2018-01-14 00:03:22 +07:00
Sergey M․ 07aeced68e
[youtube] Extract uploader, uploader_id and uploader_url for playlists (#11427, #15018) 2017-12-19 03:51:28 +07:00
Sergey M․ f2332f18e6
[youtube] Restrict embed regex (#14600) 2017-10-27 22:26:43 +07:00
Remita Amine fa4bc6e712 [youtube] replace youtube redirect urls in description(fixes #14517) 2017-10-17 10:07:37 +00:00
Sergey M․ 685e87b61f
[youtube] Fix relative URLs in description 2017-10-14 20:26:52 +07:00
Khang Nguyen 04af3aca04 Remove YoutubeSharedVideoIE https://github.com/rg3/youtube-dl/issues/14303 2017-10-11 02:01:18 +08:00
Sergey M․ 197224b7a4
Fix some regexes 2017-10-09 23:50:53 +07:00
Sergey M․ 8b561bfc9d
[youtube] Add support for hooktube.com (closes #14437) 2017-10-07 21:59:04 +07:00
Sergey M․ 66c9fa36c1
[youtube] Separate methods for embeds extraction 2017-09-06 00:48:37 +07:00
Sergey M․ 8d81f3e36d
[youtube] Force old layout for each webpage (closes #14083) 2017-09-02 00:58:19 +07:00
Sergey M․ 7998520933
[youtube] Fix upload date extraction (closes #14065) 2017-08-31 00:47:58 +07:00
Sergey M․ 1c9c8de29e
[youtube] Fix extraction with --youtube-skip-dash-manifest enabled (closes #14037) 2017-08-27 06:06:39 +07:00
Sergey M․ c7121fa7b8
[youtube] Fix controversy videos extraction (closes #14027, closes #14029) 2017-08-26 15:38:38 +07:00
Sergey M․ ea3f20494f
[youtube] PEP 8 2017-07-15 07:02:57 +07:00
Sergey M․ 7d02dcfaa2
[youtube] Don't capture YouTube Red ad for creator meta field (closes #13621) 2017-07-14 22:37:04 +07:00
Sergey M․ ddbb4c5c3e
[youtube] Adapt to new automatic captions rendition (closes #13467) 2017-06-23 02:00:19 +07:00
Sergey M․ 39d4c1be4d
[youtube] Improve chapters extraction (closes #13247) 2017-06-01 23:29:45 +07:00
Yen Chi Hsuan a49eccdfa7
[youtube] Parse player_url if format URLs are encrypted or DASH MPDs are requested
Fixes #13211
2017-05-28 20:20:20 +08:00
Yen Chi Hsuan fd545fc6d1
Revert "[youtube] Don't use the DASH manifest from 'get_video_info' if 'use_cipher_signature' is True (#5118)"
This reverts commit 87dc451108.
2017-05-26 23:22:54 +08:00
Sergey M․ dc4e4f90a2
[youtube] Modernize 2017-05-21 01:18:56 +07:00
Protuhj fdc20f87a6 [youtube] Fix DASH manifest signature decryption (closes #8944) 2017-05-21 01:11:37 +07:00
Sergey M․ 3995d37da5
[youtube] Fix TFA (#12927) 2017-05-07 04:19:11 +07:00
Sergey M․ e00eb564e9
[youtube] Fix authentication (closes #12927) 2017-05-06 23:58:47 +07:00
Sergey M․ 9cafc3fd8b
[youtube] Extract chapters 2017-05-06 02:27:06 +07:00
Yen Chi Hsuan b62985a9a5
[youtube] Recognize another HTML5 player URL (#12885) 2017-04-28 16:25:04 +08:00
Yen Chi Hsuan e31fed95b4
[youtube] Recognize new locale-based player URLs (fixes #12885) 2017-04-28 15:48:30 +08:00
Remita Amine 89beedd31f [youtube] improve m3u8 format extraction 2017-04-11 21:55:59 +01:00
Sergey M․ d23028a8fb
[youtube] Remove explicit preference for audio-only and video-only formats
In order not to break sorting when new formats appear
2017-04-11 22:41:48 +07:00
Sergey M․ d0ba55871e
[youtube] Improve _VALID_URLs (closes #12538) 2017-03-25 01:18:33 +07:00
Yen Chi Hsuan c9612c0487
[youtube] Mark errors about rental videos as expected
Closes #12324
2017-03-02 16:59:53 +08:00
Sergey M․ 87dadd456a
[youtube:playlist] Recognize another playlist pattern (closes #11928, closes #12286) 2017-02-28 23:06:47 +07:00
Sergey M․ 0e879f432a
[youtube:channel] Remove duplicate test 2017-02-27 22:22:43 +07:00
Sergey M․ fd5c4aab59
[youtube] Raise GeoRestrictedError 2017-02-26 16:52:40 +07:00
Sergey M․ 6310acf512
[youtube] Fix parsing codecs (closes #12091) 2017-02-12 18:09:53 +07:00
Remita Amine 605fd6392f [youtube] add format info for itag 325 and 328 2017-02-03 17:59:48 +01:00
Yen Chi Hsuan a22b2fd19b
[youtube] Fix ytsearch* when cookies are provided
Closes #11924

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.
2017-02-03 01:28:24 +08:00
Sergey M․ a685751051
[youtube:playlist] Recognize TL playlists (closes #11945) 2017-02-02 22:01:11 +07:00
Sergey M․ 3c90cc8b6f
[youtube] Fix extraction for domainless player URLs
Closes #11890
Closes #11891
Closes #11892
Closes #11894
Closes #11895
Closes #11897
Closes #11900
Closes #11903
Closes #11904
Closes #11906
Closes #11907
Closes #11909
Closes #11913
Closes #11914
Closes #11915
Closes #11916
Closes #11917
Closes #11918
Closes #11919
2017-01-31 22:22:37 +07:00
Sergey M․ 556dbe7fe3
[youtube] Add fallback for duration extraction (closes #11841) 2017-01-26 21:43:14 +07:00
Sergey M․ 4201ba13e6
[youtube:playlist] Fix nonexistent/private playlist detection and skip private tests 2017-01-23 02:49:56 +07:00
Grzegorz P 8bc0800d7c [youtube:playlist] Fix nonexistent/private playlist detection (closes #11604) 2017-01-23 02:35:38 +07:00
Sergey M․ 12afdc2ad6
[youtube] Extract episode metadata (closes #9695, closes #11774) 2017-01-21 18:10:32 +07:00
Sergey M․ 022a5d663b
[youtube] Add test for itag 212 (#11575) 2017-01-09 22:30:46 +07:00
Kacper Michajłow 8409b3683c [youtube] Add itag 212
Seen on video with id 1t24XAntNCY
2017-01-09 22:29:03 +07:00
Yen Chi Hsuan ec85ded83c
Fix "invalid escape sequences" error on Python 3.6 2017-01-06 00:58:56 +08:00
Sergey M․ c867adc68c
[youtube:playlist] Pass disable_polymer in query (closes #11193, closes #11270) 2016-11-23 23:28:32 +07:00
Sergey M․ 073d5bf583
[youtube:live] Relax _VALID_URL (closes #11164) 2016-11-16 23:15:19 +07:00
Sergey M․ 481cc7335c
[youtube] Fix --no-playlist behavior for youtu.be/id URLs (closes #10896) 2016-10-19 03:27:18 +07:00
Sergey M․ c1b2a0858c
[youtube:live] Extend _VALID_URL (Closes #10839) 2016-10-04 02:10:23 +07:00
stepshal 2d3d29976b
[youtube] Change test URLs from http to https 2016-09-25 17:45:24 +07:00
stepshal 925194022c
Improve some _VALID_URLs 2016-09-14 22:47:21 +07:00
stepshal 25042f7372 Add missing r prefix for _VALID_URLs 2016-09-08 17:04:57 +07:00
Sergey M․ feaa5ad787
[youtube:playlist] Extend _VALID_URL 2016-09-04 20:12:34 +07:00
Sergey M․ 7e5dc339de
[youtube:watchlater] Fix extraction (Closes #10544) 2016-09-04 00:29:01 +07:00
Sergey M․ 6496ccb413
[youtube] Add support for rental videos' previews (Closes #10532) 2016-09-03 01:17:15 +07:00
Sergey M․ dacb3a864a
[youtube:playlist] Fallback to video extraction for video/playlist URLs when playlist is broken (Closes #10537) 2016-09-02 23:43:20 +07:00
Sergey M․ 05bddcc512
[youtube] Fix authentication (2) (Closes #10392) 2016-08-24 01:29:50 +07:00
Sergey M․ 1212e9972f
[youtube] Fix authentication (#10392) 2016-08-24 00:25:21 +07:00
Sergey M․ e298d3a08c
[youtube] Fix authentication (Closes #10140) 2016-07-22 21:05:39 +07:00
Sergey M․ fd8c8c7dcd
[youtube:shared] Relax _VALID_URL 2016-07-21 22:58:34 +07:00
Sergey M․ 7f29cf545a
[youtube] Add YouTube Red paid video reference test (#10059) 2016-07-12 02:10:35 +07:00
Sergey M․ e9fb6a4bbe
[youtube] Relax TFA regexes 2016-07-11 03:08:38 +07:00
Sergey M․ 9558dcec9c
[youtube:user] Preserve user/c path segment 2016-07-09 08:37:19 +07:00
Sergey M․ 73c4ac2c95
[youtube:channel] Improve channel id extraction and detect unavailable channels (Closes #10009) 2016-07-05 23:30:44 +07:00
Yen Chi Hsuan 4080530624
[youtube:shared] Recognize the new 'shared' URLs
Closes #10007
2016-07-05 13:15:05 +08:00
Sergey M․ be49068d65
[youtube] Fix and skip some tests 2016-06-24 22:47:19 +07:00
Sergey M․ 525cedb971
[youtube] Relax URL expansion in description 2016-06-24 22:37:13 +07:00
Sergey M․ de3c7fe0d4
[youtube] Fix 141 format tests 2016-06-24 22:27:55 +07:00
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.
2016-06-10 16:37:12 +08:00
Sergey M․ 2c34735267
[youtube] Add itags 256 and 258 2016-06-05 01:44:13 +07:00
Sergey M․ 25cb7a0eeb
[youtube] Allow empty attribute values in description regex 2016-05-06 22:11:18 +06:00
Sergey M․ 175c2e9ec3
[youtube:search_url] Reimplement in terms of youtube:playlistbase 2016-04-26 22:29:29 +06:00
Sergey M․ 494ab6db73
[youtube] Capture and output login error message 2016-04-20 22:14:32 +06:00
Jaime Marquínez Ferrándiz 1b6182d8f7 [youtube:playlist] Fetch all the videos in a mix (fixes #3837)
Since there doesn't seem to be any indication, it stops when there aren't new videos in the webpage.
2016-04-17 17:07:57 +02:00
remitamine f3a58d46bf [youtube:user] check if the url didn't match only the other youtube extractors 2016-04-15 19:06:13 +01:00
Sergey M․ 466a614537
[youtube:playlist] Recognize popular uploads playlist as mix (Closes #9170) 2016-04-12 21:38:31 +06:00
Sergey M․ 6d4fc66bfc [youtube] Add support for zwearz (Closes #9062) 2016-04-04 02:26:20 +06:00
Sergey M․ 6dee688e6d [youtube:playlistsbase] Restrict playlist regex (Closes #8986) 2016-03-26 20:42:18 +06:00
Sergey M․ 6e6bc8dae5 Use urlencode_postdata across the codebase 2016-03-26 02:19:24 +06:00
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 #8974
2016-03-26 01:46:57 +06:00
Sergey M․ f07e276a04 [youtube:live] Add extractor (Closes #8959) 2016-03-25 01:18:14 +06:00
Yen Chi Hsuan 11f12195af [youtube] Added itag 91
Seen in https://www.youtube.com/watch?v=jMN4cxyhJjk
2016-03-17 19:25:37 +08:00
Sergey M․ fd050249af [youtube] Extract uploader_url (Closes #8724) 2016-03-02 23:49:10 +06:00
Sergey M․ 7caf9830b0 [youtube] Extract license (Closes #8725) 2016-03-02 23:07:25 +06:00
remitamine 3318832e9d [youtube] improve width and height extraction from fmt_list 2016-03-02 17:52:13 +01:00
remitamine c2d3cb4c63 Revert "[youtube] add tbr to _formats extracted from watch_as3.swf"
This reverts commit 4a5ba28a87.
2016-03-02 17:35:04 +01:00
remitamine c48dd4400f Revert "[youtube] add basic info for some unknown formats extracted from watch_as3.swf"
This reverts commit 85ca019d96.
2016-03-02 17:34:56 +01:00
remitamine 85ca019d96 [youtube] add basic info for some unknown formats extracted from watch_as3.swf 2016-03-02 16:05:05 +01:00
remitamine 4a5ba28a87 [youtube] add tbr to _formats extracted from watch_as3.swf 2016-03-02 16:05:05 +01:00
remitamine 82156fdbf0 [youtube] extract width and height from fmt_list 2016-03-02 16:05:05 +01:00
Sergey M․ d77ab8e255 Add --mark-watched feature (Closes #5054) 2016-03-01 01:01:33 +06:00
Sergey M․ b78b292f0c [youtube] Add alternative automatic captions extraction approach (Closes #8667) 2016-02-26 22:21:47 +06:00
Sergey M․ ebf1b291d0 [youtube:watchlater] Respect --no-playlist 2016-02-18 22:03:46 +06:00
Sergey M․ bc7a9cd8fb [youtube:watchlater] Improve _VALID_URL (Closes #8594) 2016-02-18 21:50:21 +06:00
Sergey M․ d2c1f79f20 [youtube:searchurl] Extend _VALID_URL 2016-02-16 00:29:51 +06:00
Sergey M․ f9f49d87c2 [youtube] Add test for #8536 2016-02-13 05:18:58 +06:00
Sergey M․ 6863631c26 [youtube] Improve multifeed videos extraction (Closes #8536) 2016-02-13 05:01:20 +06:00
Sergey M․ b67d63149d [youtube] Fix typos 2016-02-11 22:33:08 +06:00
Sergey M․ 3834d3e35c [youtube] Clarify itag 36 height and abr (Closes #8457) 2016-02-08 01:30:57 +06:00
remitamine 66159b38aa Merge pull request #8408 from remitamine/dash
Add generic support for mpd manifests(dash formats)
2016-02-06 06:26:02 +01:00
Sergey M․ 23d17e4beb [youtube] Fix automatic captions 2016-02-06 06:44:38 +06:00
remitamine 2fb35d1c28 [youtube] fix subtitle order 2016-02-04 08:39:01 +01:00
remitamine 09be85b8dd [youtube] fix subtitle extraction(fixes #8415) 2016-02-04 08:28:37 +01:00
remitamine 8ff648e4f9 [youtube] use _extract_mpd_formats 2016-02-02 18:10:23 +01:00
Yen Chi Hsuan 08411970d5 Merge pull request #8374 from yan12125/facebook-dash
Facebook DASH formats
2016-02-01 18:31:49 +08:00
Jaime Marquínez Ferrándiz 3ccb0655c1 [youtube] Use 'orderedSet' instead of 'set' to preserve the order 2016-01-31 15:11:00 +01:00
Sergey M․ 9acd33094d [youtube] Filter duplicates in playlists base extractor 2016-01-31 17:52:02 +06:00
Sergey M․ 8e7aad2075 [youtube] Use authentication for entry list base extractor (Closes #8380) 2016-01-31 17:49:59 +06:00
Yen Chi Hsuan 2d2fa82d17 [common] Add _extract_dash_manifest_formats 2016-01-30 22:52:23 +08:00
Yen Chi Hsuan c94678957f [common] Remove unused arguments 2016-01-30 22:45:16 +08:00
Yen Chi Hsuan 16f38a699f [common] Rename to namespace
For consistency with _parse_smil_*
2016-01-30 22:40:56 +08:00
Yen Chi Hsuan a6c2c24479 [youtube] Remove '(v|a)codec': 'none' entries
Not used anymore
2016-01-30 22:28:53 +08:00
Yen Chi Hsuan 5d2c0fd9ba [youtube] Pass self._formats to _parse_dash_manifest 2016-01-30 21:32:15 +08:00
Yen Chi Hsuan 17b598d30c [common] _parse_dash_manifest() from youtube.py 2016-01-30 21:05:55 +08:00
Yen Chi Hsuan 05d0d131a7 [youtube] Move decrypt_sig out of _parse_dash_manifest 2016-01-30 20:05:56 +08:00
Jaime Marquínez Ferrándiz 70029bc348 [youtube:user] Require 'https?://' in the url (fixes #8356)
It was matching www.youtube.com/embed/WpfukLMe1TM.
The generic extractor automatically adds http:// if it's missing.
2016-01-29 11:27:11 +01:00
Yen Chi Hsuan e9bd0f772b Merge pull request #8130 from dyn888/master
[youtube] added vcodec/acodec/abr for multiple itags
2016-01-25 01:15:11 +08:00
Yen Chi Hsuan 94278f7202 [youtube] Prefer info from YouTube than _formats (#8293) 2016-01-25 01:02:19 +08:00
Sergey M․ 51290d8457 [youtube] Simplify automatic captions URL check (Closes #8287) 2016-01-21 22:58:03 +06:00
Dimitre Liotev 582f4f834e Fix issue #8109 (error when downloading automatic captions) 2016-01-21 22:55:36 +06:00
Sergey M․ e323cf3ff3 [youtube] Skip test 2016-01-19 20:56:04 +06:00
Sergey M․ 8ceabd4df3 [youtube] Capture and output unavailable message 2016-01-19 20:54:43 +06:00
Sergey M․ a8776b107b [youtube] Clarify test_Youtube_18 2016-01-18 23:19:38 +06:00
Sergey M․ 096b533982 [youtube] Fix URL expansion in video description
Fixes test_Youtube_18
2016-01-18 23:17:45 +06:00
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.
2016-01-13 17:05:38 +08:00
Sergey M․ 23f13e9754 [youtube] Support expanding alternative format of links in description (Closes #8164) 2016-01-08 00:52:55 +06:00
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.
2016-01-03 04:11:19 +01:00
Sergey M․ e462474e1d [youtube] Generalize playlists extractor 2015-12-20 07:48:16 +06:00
Sergey M․ 9b9c5355e4 Rename error_to_str to error_to_compat_str 2015-12-20 07:00:39 +06:00
Sergey M․ 7f8b271465 Properly convert errors to strings 2015-12-20 05:27:38 +06:00
Sergey M․ 0cb58b0259 [youtube] Extract alt_title and creator for music videos (Closes #7862) 2015-12-14 21:31:53 +06:00
Sergey M․ 4c6b4764f0 [youtube] Clarify itag 272 possible resolutions (#7699) 2015-11-30 20:42:05 +06:00
Sergey M․ 2e1b928540 [youtube:playlist] Extend _VALID_URL 2015-11-29 21:04:11 +06:00
Sergey M․ 040ac68679 [youtube] Extend _VALID_URL (Closes #7694) 2015-11-29 21:01:59 +06:00
Yen Chi Hsuan 049d71d874 [youtube] Simplify and make sure header values are strings 2015-11-29 19:52:48 +08:00
Yen Chi Hsuan ac5a69af45 [youtube] Disable compression for live streams 2015-11-29 12:44:24 +08:00
Sergey M․ 5faf9fed7e [youtube] Clarify rationale for yt:stretch validation 2015-11-28 18:50:21 +06:00
Lukáš Lalinský 41f24c321d [youtube] Use the existing `w` and `h` variables 2015-11-28 08:16:46 +01:00
Lukáš Lalinský 313dfc45f5 [youtube] Ignore yt:stretch with zero width/height 2015-11-28 01:07:07 +01:00