Commit Graph

385 Commits (4d85fbbdbba79aed7b73ea54b1bdc20d078961d4)

Author SHA1 Message Date
pukkandan abcdd12b26
[youtube:tab] Support youtube music `MP` pages
pukkandan 18db754858
[youtube:tab] Redirect `UC` channels that doesn't have a `videos` tab
Many topic URLs don't have a videos tab, but has an equivalent `UU` playlist.
If there is no playlist, fallback to using channel page
pukkandan fe03a6cdc8
[youtube:tab] Support youtube music `VL` and `browse` pages
pukkandan cd684175ad
[youtube:tab] Support channel search
Fixes: https://github.com/ytdl-org/youtube-dl/issues/29071
pukkandan da692b7920
[cleanup] youtube tests
pukkandan 95c01b6c16
[youtube:tab] Show alerts only from the final webpage
pukkandan 5112f26a60
Add `pl_thumbnail` outtmpl key for playlist thumbnails
This should have been implemented in 681de68e9d, but I forgot
pukkandan a06916d98e
[extractor] Add `write_debug` and `get_param`
pukkandan 681de68e9d
Write thumbnail of playlist
Related: https://github.com/ytdl-org/youtube-dl/pull/28872, https://github.com/ytdl-org/youtube-dl/pull/28860
This is slightly different from the above PRs in that this downloads the playlist's thumbnail instead of the uploader's profile picture. But for youtube channel URLs these are the same
pukkandan 7aee40c13c
Fix bug in listing subtitles
Bug introduced by: 2412044c90
coletdjnz 9297939ec3
[Youtube] Extract more formats for `music.youtube` URLs ()
Based on: https://github.com/ytdl-org/youtube-dl/pull/28778, https://github.com/ytdl-org/youtube-dl/pull/26160

Co-authored-by: craftingmod, colethedj, pukkandan
pukkandan 774d79cc4c
[youtube] Add language names
Co-authored by: nixxo, tpikonen
Based on: https://github.com/ytdl-org/youtube-dl/pull/26112
Closes: 
pukkandan 2412044c90
Add field `name` for subtitles
Co-authored by: pukkandan, tpikonen

Based on: , https://github.com/ytdl-org/youtube-dl/pull/26112
pukkandan 120916dac2
[youtube] multiple subtitles in same language
Fixes: https://github.com/ytdl-org/youtube-dl/issues/21164
Related: , https://github.com/ytdl-org/youtube-dl/pull/26112
pukkandan fe346461ff
Fix `--check-formats` when there is network error
pukkandan d2a1fad968
[compat] Fix py2
pukkandan 0fb983f62d
[youtube] Extract audio language
pukkandan 53c18592d3
Add option `--print`
Deprecates: `--get-description`, `--get-duration`, `--get-filename`, `--get-format`, `--get-id`, `--get-thumbnail`, `--get-title`, `--get-url`
Closes 
pukkandan e632bce2e4
[options] Refactor callbacks
pukkandan 0760b0a7e2
Standardize `write_debug`
pukkandan d908aa636a
[cleanup] Fix typos
pukkandan 3d89341b47
[common] bugfix for when `compat_opts` is not given
pukkandan d8ec40b39f
[rmcdecouverte] Generalize `_VALID_URL`
Closes 
pukkandan 4171221823
Add compat-option `no-attach-infojson`
pukkandan eaeca38fc4
[version] update :ci skip all
pukkandan fac988053f
Release 2021.05.11
* and some documentation improvements
pukkandan 61241abbb0
[generic] Respect the encoding in manifest
pukkandan 53ed7066ab
Option `--compat-options` to revert some of yt-dlp's changes
* Deprecates `--list-formats-as-table`, `--list-formats-old`
pukkandan a61f4b287b
Deprecate support for python versions < 3.6
Closes 
pukkandan 486fb17975
Remove `-l`, `-t`, `-A` completely and disable `--auto-number`, `--title`, `--literal`, `--id`
pukkandan 2f567473c6
[Plugins] Prioritize plugins over standard extractors
and prevent plugins from overwriting the standard extractor classes

Closes 
pukkandan 000ee7ef34
[fragment] Make sure first segment is not skipped
pukkandan 41d1cca328
Update to ytdl-commit-a726009
[blinkx] Remove extractor
a726009987
pukkandan 717297545b
Fix `playlist_index` and add `playlist_autonumber` ()
Now `playlist_index` is always the position of the video in the actual playlist and `playlist_autonumber` is the position of the item in the playlist queue
pukkandan e8e738406a
Add experimental option `--check-formats` to test the URLs before format selection
pukkandan e625be0d10
Improve output template internal formatting
* Allow slicing lists/strings using `field.start🔚step`
* A field can also be used as offset like `field1+num+field2`
* A default value can be given using `field|default`
* Capture all format strings and set it to `None` if invalid. This prevents invalid fields from causing errors
pukkandan 12e73423f1
[plutotv] Fix format extraction for some urls
* And fallback to the first urls if ad-free urls can't be found
Closes 
pukkandan 7700b37f39
[plutotv] Extract subtitles from manifests
Ashish c28cfda81f
[SonyLiv] Fix `title` and `series` extraction ()
Authored by: Ashish0804
pukkandan 848887eb7a
[downloader] Fix `quiet` and `to_stderr`
pukkandan 3158150cb7
[utils] Add `network_exceptions`
pukkandan 6ef6bcbd6b
[fragment] Ensure the file is closed on error
pukkandan 06425e9621
[blinkx] Minor fix
Fixes: https://github.com/ytdl-org/youtube-dl/issues/28941
pukkandan 4d224a3022
[embedthumbnail] Fix bug where jpeg thumbnails were converted again
Closes 
pukkandan f59ae58163
Fix number of digits in `%(playlist_index)s`
When used with `--playlist-(items|start|end)`, the number of digits should depend on the last index in the playlist, not number of items
pukkandan 0d1bb027aa
Move option warnings to `YoutubeDL`
Previously, these warnings did not obey `--no-warnings` and did not output colors
pukkandan 4cd0a709aa
Fix `preload_download_archive` writing verbose message to `stdout`
* And move it after all deprecated warnings
pukkandan 1815d1028b
[zee5] Fix py2 compatibility
The Hatsune Daishi 0fa9a1e236
[whowatch] Add extractor
closes 

Authored by: nao20010128nao 
Modified from: 9e4a0e061a/youtube_dl/extractor/whowatch.py
pukkandan eb55bad5a0
[aria2c] Fix whitespace being stripped off
Closes 
pukkandan cc0ec3e161
Do not strip out whitespaces in `-o` and `-P`
Related: https://github.com/yt-dlp/yt-dlp/issues/276#issuecomment-827361652
pukkandan 80185155a1
[ukcolumn] Add Extractor
Closes 
pukkandan c755f1901f
[CBS] Improve `_VALID_URL` to support movies
Closes 
Tested by: BeeMuffins
pukkandan 68b91dc905
[youtube] Add `oembed` to reserved names
pukkandan 88f06afc0c
[rmcdecouverte] Improve `_VALID_URL`
Closes 
CXwudi 40078a55e2
[niconico] Fix bug in thumbnail extraction
Bug from: 6b1d8c1e30
Authored by: CXwudi
pukkandan d2558234cf
[utils] Escape URL while sanitizing
Closes 

While this fixes the issue in question, it does not try to address the root-cause of the problem
Refer: 915f911e36, f5fa042c82
pukkandan f5fa042c82
Revert "[utils] Encode URLs in `YoutubeDLCookieProcessor`"
This reverts commit 915f911e36.

When the request is copied, `unredirected_hdrs` are not copied, which causes issues elsewhere
Reopens 
pukkandan 07e4a40a9a
[crackle] Improve extraction (See desc)
Closes 

* Refactor authorization as an extension to `_download_json`
* Better error messages and warnings
* Respect `--ignore-no-formats-error`
* Extract subtitles from manifests
* Try with crackle's geo-location service if all hard-coded countries fail
pukkandan e28f1c0ae8
[cleanup] Fix linter and some typos
* Also remove inconsistent use of `"` in setup.py
pukkandan ef39f8600a
[curiositystream] Fix collections
Closes 

* A bug with authentication was reported in <https://github.com/yt-dlp/yt-dlp/issues/277#issuecomment-828254721> but cannot be tested without an account
pukkandan 2291dbce2a
[niconico] Fix HLS formats
Closes 

* The structure of the API JSON was changed
* Smile Video seems to be no longer available. So remove the warning
* Move ping to downloader
* Change heartbeat interval to 40sec
* Remove unnecessary API headers

Authored-by: CXwudi, tsukumijima, nao20010128nao, pukkandan
Tested by: tsukumijima
pukkandan 58f197b76c
Revert "[core] be able to hand over id and title using url_result"
This reverts commit 0704d2224b.

This is a commit from `youtube-dlc`. It is not clear what the original purpose of this was. It seems to be a way for extractors to pass `title` and `id` through when the entry is processed by another extractor

* But `title` can already be passed through using `url_transparent`
* `id` is never supposed to be passed through since it could cause issues with archiving
pukkandan 895b0931e5
[youtube:tab] Detect playlists inside community posts
pukkandan 1ad047d0f7
[nebula] Move to nebula.app
Closes 
Tested by: Lamieur
pukkandan be6202f12b
Subtitle extraction from streaming media manifests
Authored by fstirlitz
Modified from: https://github.com/ytdl-org/youtube-dl/pull/6144

Closes: 
Fixes:
https://github.com/ytdl-org/youtube-dl/issues/6106
https://github.com/ytdl-org/youtube-dl/issues/14977
https://github.com/ytdl-org/youtube-dl/issues/21438
https://github.com/ytdl-org/youtube-dl/issues/23609
https://github.com/ytdl-org/youtube-dl/issues/28132

Might also fix (untested):
https://github.com/ytdl-org/youtube-dl/issues/15424
https://github.com/ytdl-org/youtube-dl/issues/18267
https://github.com/ytdl-org/youtube-dl/issues/23899
https://github.com/ytdl-org/youtube-dl/issues/24375
https://github.com/ytdl-org/youtube-dl/issues/24595
https://github.com/ytdl-org/youtube-dl/issues/27899

Related:
https://github.com/ytdl-org/youtube-dl/issues/22379
https://github.com/ytdl-org/youtube-dl/pull/24517
https://github.com/ytdl-org/youtube-dl/pull/24886
https://github.com/ytdl-org/youtube-dl/pull/27215

Notes:
* The functions `extractor.common._extract_..._formats` are still kept for compatibility
* Only some extractors have currently been moved to using `_extract_..._formats_and_subtitles`
* Direct subtitle manifests (without a master) are not supported and are wrongly identified as containing video formats
* AES support is untested
* The fragmented TTML subtitles extracted from DASH/ISM are valid, but are unsupported by `ffmpeg` and most video players
    * Their XML fragments can be dumped using `ffmpeg -i in.mp4 -f data -map 0 -c copy out.ttml`.
        Once the unnecessary headers are stripped out of this, it becomes a valid self-contained ttml file
    * The ttml subs downloaded from DASH manifests can also be directly opened with <https://github.com/SubtitleEdit>
* Fragmented WebVTT files extracted from DASH/ISM are also unsupported by most tools
    * Unlike the ttml files, the XML fragments of these cannot be dumped using `ffmpeg`
    * The webtt subs extracted from DASH can be parsed by <https://github.com/gpac/gpac>
    * But validity of the those extracted from ISM are untested
Felix S e8f834cd8d [threeqsdn] Extract subtitles from streaming manifests
Felix S e0e624ca7f [canvas] Extract subtitles from streaming manifests
Felix S ec4f374c05 [wat] Extract subtitles from streaming manifests
Felix S c811e8d8bd [atresplayer] Extract subtitles from streaming manifests
Felix S b2cd5da460 [francetv] Extract subtitles from the HLS manifest
Felix S 2de3b21e05 [uplynk] Extract subtitles from HLS manifests
Felix S 4bed436371 [twitter] Extract subtitles from HLS manifests
Felix S efe9dba595 [srgssr] Extract subtitles from HLS manifests
Felix S 47f4203dd3 [nytimes] Extract subtitles from HLS manifests
Felix S 015c10aeec [roosterteeth] Use common code for subtitle extraction
Felix S a00d781b73 [elonet] Use common code for subtitle extraction
Felix S 0c541b563f [tv4] Extract subtitles from streaming manifests
Felix S 64a5cf7929 [byutv] Extract subtitles from streaming manifests
Felix S 7a450a3b1c [generic] Extract subtitles from direct SSTR manifest links
Felix S 7de27caf16 [generic] Extract subtitles from direct DASH manifest links
Felix S c26326c1be [generic] Extract subtitles from direct HLS manifest links
Felix S 66a1b8643a [downloader/ism] Support muxing TTML subtitles
Felix S 15828bcf25 [downloader/hls] Handle MPEG-2 PES timestamp overflow
Felix S 333217f43e [downloader/hls] Remove duplicate cues using a sliding window of candidates
Felix S 4a2f19abbd [downloader/hls] Assemble single-file WebVTT subtitles from HLS segments
Felix S f6a1d69a87 [extractor/common] Extend _extract_akamai_formats to also extract subtitle tracks
Felix S fd76a14259 [extractor/common, downloader/ism] Extract SSTR subtitle tracks
_parse_ism_formats was extended into _parse_ism_formats_and_subtitles;
all direct users were updated, though _extract_ism_formats was left
as a compatibility wrapper.

The SSTR downloader was also modified in order to prepare for muxing
subtitle streams, although no support for any subtitle codecs was
added in this commit.
Felix S 171e59edd4 [extractor/common] Extract DASH subtitle tracks
_extract_mpd_formats and _parse_mpd_formats were extended into
_…_formats_and_subtitles; wrappers with old names are provided
for compatibility.
Felix S a0c3b2d5cf [extractor/common] Extract HLS subtitle tracks
_extract_m3u8_formats is renamed to _extract_m3u8_formats_and_subtitles
and extended to handle subtitle tracks instead of skipping them;
a wrapper with the old name is provided for compatibility.

_parse_m3u8_formats is likewise renamed and extended, but without adding
the compatibility wrapper; the test suite is adjusted to test the enhanced
method instead.
Felix S 19bb39202d [extractor/common] Generalise _merge_subtitles
This allows modifying a subtitles dictionary in-place.
Felix S d4553567d2 [downloader/ism] Prevent writing the header again when resuming an interrupted download
Felix S 4d49884c58 [downloader/fragment] Allow persisting extra state when a download is interrupted
Felix S 5873d4ccdd [utils] Improve bug_report_message
Add an optional argument specifying the text that should go before
the message.
Hadi0609 db9a564b6a
[zee5] Fix extraction for some URLs ()
Closes: 
Felix S c72967d5de
[mediasite] Generalize URL pattern ()
Authored by: fstirlitz
pukkandan 598d185db1
Fix case sensitivity of format selector
Bug introduced in f8d4ad9ab0
pukkandan b982cbdd0e
[limelight] Obey `allow_unplayable_formats`
pukkandan 6a04a74e8b
[FormatSort] Fix for when some formats have quality and others don't
pukkandan 88728713c8
Py2 compatibility for `FileNotFoundError`
CXwudi 6b1d8c1e30
[niconico] Fix title and thumbnail extraction ()
Authored by: CXwudi
Ashish 87c3d06271
[Mxplayer] Add MxplayerShowIE ()
Authored by: Ashish0804
pukkandan 915f911e36
[utils] Encode URLs in `YoutubeDLCookieProcessor`
Closes 
pukkandan cf9d6cfb0c
[tubi] Raise "no video formats" error when video url is empty
Related: 
pukkandan bbed5763f1
[francetvinfo] Improve video id extraction
Closes 
pukkandan ca0b91b39e
[version] update :ci skip all
pukkandan e58c22a0f6
[documentation] Fix typos
pukkandan 1bdae7d312
Update to ytdl-commit-7e8b3f9
[youtube] Remove unused code
7e8b3f9439
Felix S a471f21da6
[mildom] Remove proxy ()
Closes 
Makes 2cff495997, ab406a1c0e,  obsolete

Authored by: fstirlitz
pukkandan 6efb071135
[BilibiliChannel] Fix pagination
Closes 

ccca21d7f5
Coauthored by: nao20010128nao, pukkandan
pukkandan a439a3a45c
Improve output template (see desc)
* Objects can be traversed like `%(field.key1.key2)s`
* A number can be added to the field as `%(field+n)s`
* Deprecates `--autonumber-start`
pukkandan 26e2805c3f
Add option `--skip-playlist-after-errors`
Allows to skip the rest of a playlist after a given number of errors are encountered
pukkandan 3b4775e021
[go] Fix `_VALID_URL`
Closes 
pukkandan ab406a1c0e
[mildom] Warn user of proxy
pukkandan a3faeb7de4
[MetadataFromField] Improve regex and add tests
pukkandan 8c54a3051d
[youtube] Bugfix in `_extract_ytcfg`
pukkandan c32b0aab8a
Improve --sub-langs (see desc)
* Treat `--sub-langs` entries as regex
* `all` can be used to refer to all the subtitles
* the language code can be prefixed with `-` to exclude it
* Deprecates `--all-subs`
Closes 
pukkandan 3097d9e512
[mildom:user:vod] Download only necessary amount of pages
pukkandan c1df120eda
[mildom:vod] Remove proxy
* Proxy is needed only for live videos
pukkandan 2cff495997
[mildom] Change proxy
Related: 
Closes 
pukkandan d0491a1ebe
[twitcasting] Fix extractor
* `Origin: https://twitcasting.tv` must be sent when requesting the webpage. Otherwise the extracted `m3u8` will always give a `502`
* Fix regex for when `data-movie-playlist` is a dict containing the needed list
* media initialization is fully supported; so change downloader to native

Closes 
nixxo b9d68c199b
[rai] Add support for http formats ()
Authored by: nixxo
pukkandan 201c145953
Update to ytdl-commit-9f6c03
[cbsnews] Fix extraction for python <3.6
9f6c03a006
pukkandan 5d34200268
[youtube:tab] Reload with unavailable videos for all playlists
If the unavailable video is in a later page, the warning and button are not shown in the initial webpage
So we force all playlists' initial page to reload with the correct params
pukkandan b7da73eb19
Add option `--ignore-no-formats-error`
* Ignores the "no video format" and similar errors
* Experimental - Some extractors may still throw these errors
pukkandan 6a39ee13f7
Fix inconsistent use of `report_warning`
pukkandan 33245766ab
[downloader] Fix ffmpeg selection for m3u8_native
coletdjnz 358de58c4d
[youtube:tab] Show unavailable videos in playlists ()
Closes 

Authored by: colethedj
pukkandan a7191c6f57
Fix some linter and typos
lkho baa5873942
[viu:ott] Fix extractor (see desc)
* add language_flag_id query param
* add support for premium account (untested since I dont have a premium account)
* support entire series

Code from:
https://github.com/blackjack4494/youtube-dlc/pull/211
https://github.com/ytdl-org/youtube-dl/pull/15182
https://github.com/ytdl-org/youtube-dl/pull/26775

Fixes:
https://github.com/yt-dlp/yt-dlp/issues/219
https://github.com/ytdl-org/youtube-dl/issues/27946
https://github.com/ytdl-org/youtube-dl/issues/27863
https://github.com/ytdl-org/youtube-dl/issues/27812
https://github.com/ytdl-org/youtube-dl/issues/27464
https://github.com/ytdl-org/youtube-dl/issues/26788
https://github.com/blackjack4494/yt-dlc/issues/136

Possibly also fixes (untested):
https://github.com/ytdl-org/youtube-dl/issues/16992
https://github.com/ytdl-org/youtube-dl/issues/26701

Co-authored by: lkho, pukkandan
pukkandan c6ce815461
[Exec] Ensure backward compatibility when the command contains `%`
coletdjnz 79360d99d3
[youtube] Standardize API calls for tabs, mixes and search ()
Authored by: colethedj
pukkandan 46fff7105e
[youtube] Ignore invalid stretch ratio
Closes 
pukkandan 72e1fe969f
[downloader] Fix downloader selection for m3u8
Bug introduced by: 52a8a1e1b9 and a31953b0e6
Ashish b5be6dd504
[TubiTv] Add TubiTvShowIE ()
Authored by: Ashish0804
coletdjnz 8ea3f7b909
[youtube] Improve channel syncid extraction to support ytcfg ()
Authored by: colethedj
pukkandan 921b76cab8
Ensure `mergeall` selects best format when multistreams are disabled
pukkandan a31953b0e6
[downloader] Fix external downloader selection for m3u8
Closes 
pukkandan 54670cf084
[version] update
:ci skip all
pukkandan b31fdeedfd
[documentation] Improvements
pukkandan 8fa43c73d8
Add option `--convert-thumbnails`
Closes: https://github.com/yt-dlp/yt-dlp/issues/99 https://github.com/yt-dlp/yt-dlp/issues/102
pukkandan 56d868dbb7
Allow running some `postprocessors` before actual download
coletdjnz f4f751af40
[youtube] Parse API parameters from initial webpage ()
* Obtain innertube_context, api_key and x-goog-visitor-id from webpage
* Generalize the header & Innertube_context extraction across YouTube extractors

Related: 1b0a13f33c

Authored by: colethedj
pukkandan 1988fab7e3
[youtube] Fix thumbnail URL
Closes: https://github.com/yt-dlp/yt-dlp/issues/233 https://github.com/ytdl-org/youtube-dl/issues/28023
pukkandan 9de3ea3126
Pass any field to `--exec` using similar syntax to output template
Related: https://github.com/ytdl-org/youtube-dl/issues/28642
pukkandan e01d6aa435
Fix `mergeall` when requested formats are unavailable
pukkandan f7ad71607d
Update to ytdl-commit-4fb25ff
[maoritv] Add new extractor
4fb25ff5a3

Except:
[vimeo] improve extraction 3ae9c0f410
[youtube:tab] Pass innertube context... 1b0a13f33c
pukkandan 68379de561
[downloaders] Fix API access
Bug introduced by: 52a8a1e1b9
pukkandan d9aa233295
Deprecate more options
* `--all-formats` = `-f all`
* `--include-ads` is not implemented
pukkandan f37468c41f
Fix default of `dynamic_mpd`