Commit Graph

557 Commits

Author SHA1 Message Date
pukkandan 6020e05d23
Raise error if subtitle download fails
Closes #2212
2022-01-03 19:40:06 +05:30
pukkandan ebed8b3732
Add more post-processing stages
playlist = After entire playlist
after_video = After downloading all formats of a video
2022-01-03 19:40:05 +05:30
pukkandan 1e43a6f733
Allow `--exec` to be run at any post-processing stage
Deprecates `--exec-before-download`
2022-01-03 19:40:02 +05:30
pukkandan ca30f449a1
Add `--print playlist:` to print fields per playlist 2022-01-03 19:39:59 +05:30
pukkandan 4c922dd3fc
Fix live title for multiple formats 2022-01-02 03:03:26 +05:30
pukkandan abbeeebc4c
[outtmpl] Alternate form for `D` and fix suffix's case
Fixes: https://github.com/yt-dlp/yt-dlp/issues/2085#issuecomment-1002247689, https://github.com/yt-dlp/yt-dlp/pull/2132/files#r775729811
2021-12-30 08:44:18 +05:30
pukkandan ceb98323f2
Don't treat empty containers as `None` in `sanitize_info` 2021-12-28 02:54:11 +05:30
Matt Broadway f59f5ef8b6
[cookies] Support other keyrings (#2032)
Authored by: mbway
2021-12-27 06:58:44 +05:30
pukkandan 6da22e7d4f
Avoid recursion error when re-extracting info 2021-12-26 04:20:16 +05:30
Benedikt Wildenhain 4b4b7f746c
[OpenCast] Add extractors (#1905)
Original PR: https://github.com/ytdl-org/youtube-dl/pull/26934
Authored by: bwildenhain, C0D3D3V
2021-12-25 03:35:23 +05:30
pukkandan 37893bb0c9
[outtmpl] Change filename sanitization type to `S`
`F` is already used for float!
Bug in e0fd95737d
2021-12-23 09:15:05 +05:30
Emanuel Hoogeveen 205a0654c0
Add option `--file-access-retries` (#2066)
Closes #517
Authored by: ehoogeveen-medweb
2021-12-23 07:59:03 +05:30
pukkandan b69fd25c25
[cleanup] Misc cleanup
Closes #1942 #1976 #2020 #2058 #1984
2021-12-23 07:12:46 +05:30
pukkandan e0fd95737d
[outtmpl] Add alternate forms `F`, `D`
and improve `id` detection

F = sanitize as filename (# = restricted)
D = add Decimal suffixes

Closes #2085, 2081
2021-12-23 06:49:16 +05:30
pukkandan fa9f30b802
Add interactive format selection with `-f -`
Closes #2065
2021-12-21 21:40:04 +05:30
The Hatsune Daishi adbc4ec4bb
[dash,youtube] Download live from start to end (#888)
* Add option `--live-from-start` to enable downloading live videos from start
* Add key `is_from_start` in formats to identify formats (of live videos) that downloads from start
* [dash] Create protocol `http_dash_segments_generator` that allows a function to be passed instead of fragments
* [fragment] Allow multiple live dash formats to download simultaneously
* [youtube] Implement fragment re-fetching for the live dash formats
* [youtube] Re-extract dash manifest every 5 hours (manifest expires in 6hrs)
* [postprocessor/ffmpeg] Add `FFmpegFixupDuplicateMoovPP` to fixup duplicated moov atoms

Known issue: Ctrl+C doesn't work on Windows when downloading multiple formats

Closes #1521
Authored by: nao20010128nao, pukkandan
2021-12-20 11:36:46 +05:30
Unit 193 e75bb0d6c3
[cleanup] Fix some typos (#2033)
Authored by: unit193
2021-12-19 20:48:06 +05:30
pukkandan dd0228ce1f
Remove known invalid thumbnails from `info_dict`
Related: https://github.com/yt-dlp/yt-dlp/issues/980#issuecomment-997396821
2021-12-19 20:25:01 +05:30
PilzAdam e978789f0f
[outtmpl] Add operator `&` for replacement text (#2012)
Authored by: PilzAdam
2021-12-18 02:05:48 +05:30
pukkandan 39ca3b5c7f
[extractor] Standardize `_live_title` 2021-12-15 22:09:07 +05:30
pukkandan 0bb322b9c0
Add field `webpage_url_domain`
Closes #1311
2021-12-15 04:51:52 +05:30
pukkandan 5bfc8bee5a
Fix PostProcessor hooks not registered for some PPs
Closes #1993
2021-12-15 02:14:14 +05:30
pukkandan e3c7d49571
[compat] Suppress errors in enabling VT mode
Closes #1932
2021-12-08 19:58:50 +05:30
pukkandan b5475f1145
Pre-process when using `--flat-playlist` 2021-12-07 02:07:48 +05:30
pukkandan 38d79fd16c
Use `parse_duration` for `--wait-for-video`
and some minor fix
2021-12-06 23:30:33 +05:30
pukkandan 3efb96a6d1
Fix control characters being printed to `--console-title`
Closes #1859
2021-12-01 22:39:57 +05:30
pukkandan 91f071af60
Release 2021.12.01 2021-12-01 05:46:15 +05:30
pukkandan 5c22c63da3
Fix `--trim-filename` when filename has `.`
Closes #1837
2021-11-30 00:14:18 +05:30
pukkandan ee8dd27a73
[cleanup] Add deprecation warnings 2021-11-29 23:34:33 +05:30
pukkandan f304da8a29
[cleanup] Misc cleanup
Closes #1805, closes #1800
2021-11-29 23:34:33 +05:30
pukkandan 36eaf3039a
[build] Save Git HEAD at release alongside version info 2021-11-29 22:52:01 +05:30
pukkandan f2ebc5c7be
Option `--wait-for-video` to wait for scheduled streams 2021-11-29 22:52:01 +05:30
pukkandan b222c27145
Option `--break-per-input` to apply --break-on... to each input URL 2021-11-29 22:52:01 +05:30
pukkandan 5e5be0c0b2
Fix --break-on-archive when pre-checking 2021-11-29 22:52:01 +05:30
pukkandan 7578d77d8c
[downloader] Add colors to download progress 2021-11-29 22:51:18 +05:30
pukkandan 75689fe59b
Ensure directory exists when checking formats 2021-11-27 19:21:48 +05:30
pukkandan e04b003e64
[FixupM3u8] Fixup MPEG-TS in MP4 container
Closes #1701, https://github.com/ytdl-org/youtube-dl/issues/26410
2021-11-27 19:21:47 +05:30
pukkandan ff51ed588f
Clarify video/audio-only formats in -F
Related: #1759
2021-11-23 20:42:20 +05:30
Zirro 0e6b018a10
Ensure path for link files exists (#1755)
Authored by: Zirro
2021-11-23 01:41:49 +05:30
pukkandan 282f570918
[utils] Fix error when copying `LazyList` 2021-11-20 08:33:55 +05:30
pukkandan c07a39ae8e
[utils] Fix `PagedList`
Bug in d8cf8d97a8
2021-11-20 08:33:53 +05:30
pukkandan c5e3f84972
[utils] Allow alignment in `render_table`
and add tests
2021-11-20 08:33:51 +05:30
pukkandan dd2a987d3f
[tests] Fix tests 2021-11-19 06:30:25 +05:30
pukkandan 9222c38182
[cleanup] Minor cleanup
Closes #1696, Closes #1673
2021-11-19 05:36:28 +05:30
pukkandan 013b50b794
Fix 'postprocessor_hooks`
Closes #1650
2021-11-15 04:51:11 +05:30
pukkandan dac5df5a98
Add option `--embed-info-json` to embed info-json in mkv
Closes #1644
2021-11-15 04:51:11 +05:30
pukkandan 7c7f7161fc
Fix `--load-info-json` of playlists with failed entries 2021-11-13 17:32:07 +05:30
pukkandan bf5f605e76
bugfix for e08a85d865 2021-11-11 08:44:54 +05:30
pukkandan e08a85d865
Fix writing playlist infojson with `--no-clean-infojson` 2021-11-11 08:18:35 +05:30
pukkandan 093a17107e
Allow using a custom format selector through API
Closes #1619, #1464
2021-11-11 08:18:34 +05:30
pukkandan c586f9e8de
[cleanup] minor fixes 2021-11-10 04:19:54 +05:30
pukkandan 59a7a13ef9
[docs] Minor documentation improvements
Closes #1583, #1599
2021-11-10 04:19:52 +05:30
pukkandan 4476d2c764
[outtmpl] Add alternate forms for `q` and `j` 2021-11-10 04:19:42 +05:30
pukkandan aa9369a2d8
[cleanup] Minor improvements to error and debug messages 2021-11-10 04:19:33 +05:30
pukkandan a49891c761
Fix bug in `--load-infojson` of playlists
Fixes: https://github.com/yt-dlp/yt-dlp/issues/1514#issuecomment-962659529
2021-11-08 00:26:08 +05:30
pukkandan 34921b4345
[utils] Add `join_nonempty` 2021-11-06 07:53:55 +05:30
pukkandan a4211baff5
[cleanup] Minor cleanup 2021-11-04 03:53:15 +05:30
pukkandan 8913ef74d7
[ffmpeg] Detect libavformat version for `aac_adtstoasc`
and print available features in verbose head
Based on https://github.com/ytdl-org/youtube-dl/pull/29581
2021-11-04 03:13:37 +05:30
pukkandan 0930b11fda
[docs,cleanup] Improve docs and minor cleanup
Closes #1387, #1404, #1408, #1485, #1415, #1450, #1492
2021-10-31 14:47:33 +05:30
pukkandan 48f796874d
[utils] Create `DownloadCancelled` exception
as super-class of ExistingVideoReached, RejectedVideoReached, MaxDownloadsReached

Third parties can also sub-class this to cancel the download queue from a hook
2021-10-26 20:27:09 +05:30
pukkandan 08438d2ca5
[outtmpl] Add type `link` for internet shortcut files
and refactor related code
Closes #1405
2021-10-26 20:27:09 +05:30
pukkandan f2fe69c7b0
Approximate filesize from bitrate
Closes #1400
2021-10-24 18:02:00 +05:30
pukkandan 9f1a1c36e6
Separate `--check-all-formats` from `--check-formats`
Previously, `--check-formats` tested only the selected video formats, but ALL thumbnails
2021-10-24 15:00:17 +05:30
pukkandan 96565c7e55
[cleanup] Add keyword automatically to SearchIE descriptions
and some minor cleanup of docs
2021-10-23 21:20:19 +05:30
pukkandan ec11a9f4a2
[minicurses] Add more colors 2021-10-23 05:23:38 +05:30
pukkandan 49a57e70a9
[cleanup] misc 2021-10-23 02:09:10 +05:30
pukkandan 6e21fdd279
[build] Enable lazy-extractors in releases
Set the environment variable `YTDLP_NO_LAZY_EXTRACTORS`
to forcefully disable lazy extractor loading
2021-10-21 19:41:33 +05:30
pukkandan d3c93ec2b7
Don't create console for subprocesses on Windows (#1261)
Closes #1251
2021-10-20 21:49:40 +05:30
pukkandan 176f1866cb
Add HDR information to formats 2021-10-18 18:35:02 +05:30
pukkandan 17bddf3e95
Reduce default `--socket-timeout` 2021-10-18 16:40:12 +05:30
pukkandan e820fbaa6f
Do not verify thumbnail URLs by default
Partially reverts cca80fe611 and 0ba692acc8

Unless `--check-formats` is specified, this causes yt-dlp to return incorrect thumbnail urls.
See https://github.com/yt-dlp/yt-dlp/issues/340#issuecomment-877909966, #402

But the overhead in general use is not worth it

Closes #694, #725
2021-10-18 15:44:47 +05:30
pukkandan 239df02103
Make `duration_string` and `resolution` available in --match-filter
Related: #1309
2021-10-17 17:39:33 +05:30
pukkandan 71ce444a3f
Fix --restrict-filename when used with default template 2021-10-17 01:03:04 +05:30
pukkandan 03b4de722a
[downloader] Fix slow progress hooks
Closes #1301
2021-10-16 20:02:40 +05:30
pukkandan 48ee10ee8a
Fix conflict b/w id and ext in format selection
Closes #1282
2021-10-16 20:02:30 +05:30
pukkandan 883d4b1eec
[YoutubeDL] Write verbose header to logger 2021-10-14 14:44:30 +05:30
pukkandan 993191c0d5
Fix bug in c111cefa5d 2021-10-13 04:43:26 +05:30
pukkandan b836dc94f2
[outtmpl] Fix bug in expanding environment variables 2021-10-13 04:14:11 +05:30
pukkandan c111cefa5d
[downloader/ffmpeg] Improve simultaneous download and merge 2021-10-13 04:14:11 +05:30
pukkandan 975a0d0df9
Calculate more fields for merged formats
Closes #947
2021-10-13 04:14:11 +05:30
pukkandan a903d8285c
Fix bug in storyboards
Caused by 9359f3d4f0
2021-10-11 17:27:39 +05:30
pukkandan ed39cac53d Load archive only after printing verbose head
If there is some issue in loading archive, the verbose head should be visible in the logs
2021-10-11 09:49:52 +05:30
pukkandan a169858f24 Fix `check_formats` output being written to stdout when `-qv`
Closes #1229
2021-10-11 09:49:52 +05:30
pukkandan d1d5c08f29
[minicurses] Fix when printing to file
Closes #1215
2021-10-10 09:31:59 +05:30
pukkandan b5ae35ee6d
[cleanup] Misc cleanup 2021-10-09 22:32:00 +05:30
pukkandan 4e3b637d5b
Merge webm formats into mkv if thumbnails are to be embedded
This was originally implemented in 4d971a16b8 (#173) by @damianoamatruda
but was reverted in 3b297919e0
since it was unintentionally being triggered for `write_thumbnail` (See #500)
2021-10-09 22:19:23 +05:30
pukkandan 819e05319b
Improved progress reporting (See desc) (#1125)
* Separate `--console-title` and `--no-progress`
* Add option `--progress` to show progress-bar even in quiet mode
* Fix and refactor `minicurses`
* Use `minicurses` for all progress reporting
* Standardize use of terminal sequences and enable color support for windows 10
* Add option `--progress-template` to customize progress-bar and console-title
* Add postprocessor hooks and progress reporting

Closes: #906, #901, #1085, #1170
2021-10-09 00:41:59 +05:30
pukkandan 8472674399
[FixupM3u8] Do not run if merge is needed
We pass the relevant arguments to the merger, so separate fixup in redundant
2021-10-06 05:45:19 +05:30
pukkandan 519804a92f
bugfix for 80c03fa98f 2021-10-06 05:45:18 +05:30
pukkandan b11c04a8ae
Fix `-f mp4` behaving differently from youtube-dl 2021-10-04 03:08:28 +05:30
Felix S 9359f3d4f0
[extractor] Extract storyboards from SMIL manifests (#1128)
Authored by: fstirlitz
2021-10-03 00:13:42 +05:30
pukkandan e6f21b3d92
[docs,cleanup] Some minor refactoring and improve docs 2021-09-30 03:32:52 +05:30
pukkandan 3ae5e79774
[postprocessor] Add plugin support
Adds option `--use-postprocessor` to enable them
2021-09-30 03:32:46 +05:30
pukkandan 80c03fa98f
Allow empty output template to skip a type of file
Closes #760, #1111
2021-09-30 03:32:43 +05:30
pukkandan 360167b9fc Fix `--flat-playlist` when neither IE nor id is known 2021-09-27 11:29:17 +05:30
pukkandan 91dd88b90f
[outtmpl] Alternate form of format type `l` for `\n` delimited list 2021-09-27 11:29:16 +05:30
pukkandan 524e2e4fda
[outtmpl] Format type `U` for unicode normalization 2021-09-26 01:41:01 +05:30
pukkandan ff1c7fc9d3
Allow `0` in `--playlist-items` 2021-09-25 03:31:35 +05:30
pukkandan 4c88ff87fc
[build] Improve release process (#880)
* Automate more of the release process by animelover1984, pukkandan - closes #823
* Fix sha256 by nihil-admirari - closes #385
* Bring back brew taps by nao20010128nao #865
* Provide `--onedir` zip for windows by pukkandan - Closes #1024, #661, #705 and #890

Authored by: pukkandan, animelover1984, nihil-admirari, nao20010128nao
2021-09-24 06:31:43 +05:30
pukkandan b19404591a
Separate the options `--ignore-errors` and `--no-abort-on-error`
In youtube-dl, `-i` ignores both download and post-processing error, and
treats the download as successful even if the post-processor fails.

yt-dlp used to skip the entire video on either error and there was no
option to ignore the post-processing errors like youtube-dl does.

By splitting the option into two, now either just the download errors
(--no-abort-on-error, default on CLI) or all errors (--ignore-errors)
can be ignored as per the users' needs

Closes #893
2021-09-24 06:05:35 +05:30
pukkandan 77c4a9ef68
Download subtitles in order of `--sub-langs`
Closes #1041
2021-09-24 05:14:19 +05:30
Ashish Gupta 388bc4a640
[Hotstar] Add referer for subs (#1062)
Authored by: Ashish0804
2021-09-23 14:30:49 +05:30
pukkandan a21e0ab1a1
[ffmpeg] Add `aac_adtstoasc` when merging if needed
Related: #1039
2021-09-22 19:51:58 +05:30
pukkandan 7c37ff97d3
Allow alternate fields in outtmpl
Closes #899, #1004
2021-09-18 16:41:01 +05:30
pukkandan edf65256aa
[hls,aes] Fallback to native implementation for AES-CBC
and detect `Cryptodome` in addition to `Crypto`

Closes #935
Related: #938
2021-09-18 00:55:58 +05:30
pukkandan f5aa5cfbff
Add format type `B` for outtmpl to treat the value as bytes
This is useful to limit the filename to a certain number of bytes rather than characters
Closes #1003
2021-09-18 00:11:11 +05:30
pukkandan d5fe04f5c7
Fix `--compat-option no-direct-merge` 2021-09-12 21:40:28 +05:30
pukkandan 4614bc22c1 Allow `--force-write-archive` to work with `--flat-playlist`
Related: #876
2021-09-04 03:07:29 +05:30
pukkandan 8e5fecc88c
Handle more playlist errors with `-i` 2021-09-04 03:07:27 +05:30
pukkandan 409e18286e
Fix `extra_info` being reused across runs
58adec4677 was supposed to solve this, but ended up being an incomplete fix
Closes #727
2021-09-04 01:39:29 +05:30
pukkandan 8113999995
Fix `--compat-option playlist-index` 2021-09-04 01:39:27 +05:30
pukkandan e0493e90fc
fix bug in 88acdbc269 2021-08-25 10:26:09 +05:30
pukkandan 8b7491c8d1
Fix `add_info_extractor` when used via API
Bug from: 251ae04e6a
2021-08-23 05:31:55 +05:30
pukkandan 251ae04e6a
[lazy_extractor] Create instance only after pre-checking archive 2021-08-23 05:06:39 +05:30
pukkandan 1151c4079a
[extractor] Show video id in error messages if possible 2021-08-23 02:49:07 +05:30
pukkandan 88acdbc269
[extractor] Better error message for DRM (#729)
Closes #636
2021-08-23 01:38:38 +05:30
pukkandan da33e35b05
Don't try to merge with final extension
The formats may not be directly mergable into the final extension
2021-08-23 00:50:41 +05:30
pukkandan 58adec4677
Fix `extra_info` being reused across runs
Closes #727
2021-08-19 03:10:58 +05:30
pukkandan 9e598870dd
Fix `playlist_index` not obeying `playlist_start`
and add tests
Closes #720
2021-08-17 19:06:10 +05:30
pukkandan 8f18aca871
Let `--match-filter` reject entries early
Makes redundant: `--match-title`, `--reject-title`, `--min-views`, `--max-views`
2021-08-17 04:29:56 +05:30
pukkandan 3ad56b4236
Fix `-J` when there are failed videos 2021-08-17 04:29:55 +05:30
pukkandan 86c66b2d3e
Fix `-F` for extractors that directly return url
Related: #693
2021-08-15 00:26:34 +05:30
pukkandan 6c7274ecd2
Fix resuming of single formats when using --no-part
Closes #576
2021-08-15 00:26:32 +05:30
pukkandan ad3dc496bb Misc fixes - See desc
* Remove unnecessary uses of _list_from_options_callback
* Fix download tests - Bug from 6e84b21559
* Rename ExecAfterDownloadPP to ExecPP and refactor its tests
* Ensure _write_ytdl_file closes file handle on error - Potential fix for #517
2021-08-10 01:22:55 +05:30
pukkandan 2831b4686c Show libraries present in verbose head 2021-08-10 01:22:55 +05:30
pukkandan e9f4ccd19e
Add option `--replace-in-metadata` 2021-08-10 01:22:55 +05:30
pukkandan 3448870205
[docs] Fix some mistakes and improve doc 2021-08-07 21:41:48 +05:30
pukkandan b868936cd6 [cleanup] Misc 2021-08-07 21:17:07 +05:30
pukkandan 2b8a2973bd Allow entire infodict to be printed using `%()s`
Makes `--dump-json` redundant
2021-08-07 21:17:04 +05:30
pukkandan b7b04c782e Add option `--no-simulate` to not simulate even when `--print` or `--list...` are used
* Deprecates `--print-json`
* Some listings like `--list-extractors` are handled by `yt_dlp` and so are not affected by this. These have been documented as such

Addresses: https://github.com/ytdl-org/youtube-dl/issues/29675, https://github.com/ytdl-org/youtube-dl/issues/29580#issuecomment-882046305
2021-08-07 21:17:03 +05:30
pukkandan 6e84b21559
Fix bugs related to `sanitize_info`
Related: 8012d892bd (r54555230)
2021-08-07 21:16:55 +05:30
pukkandan b51d2ae3ca
Add compat-option `no-keep-subs`
Closes #630
2021-08-06 00:55:04 +05:30
pukkandan 124bc071ee
Fix wrong extension for intermediate files
Closes #632
2021-08-05 19:51:14 +05:30
pukkandan 8012d892bd
Ensure sanitization of infodict before printing to stdout
* `filter_requested_info` is renamed to a more appropriate name `sanitize_info`
2021-08-05 03:37:16 +05:30
pukkandan a46a815b05
[cleanup] Fix linter in 96fccc101f 2021-08-01 12:52:09 +05:30
pukkandan 96fccc101f [downloader] Allow streaming unmerged formats to stdout using ffmpeg
For this to work:
1. The downloader must be ffmpeg
2. The selected formats must have the same protocol
3. The formats must be downloadable by ffmpeg to stdout

Partial solution for: https://github.com/ytdl-org/youtube-dl/issues/28146, https://github.com/ytdl-org/youtube-dl/issues/27265
2021-08-01 12:38:06 +05:30
pukkandan dbf5416a20 [cleanup] Refactor some code 2021-08-01 12:38:05 +05:30
pukkandan f5510afef0
[FormatSort] Fix bug for audio with unknown codec 2021-08-01 12:13:40 +05:30
pukkandan e4f0275711
Add compat-option `no-clean-infojson` 2021-08-01 12:13:40 +05:30
pukkandan 7d1eb38af1
Add format types `j`, `l`, `q` for outtmpl
Closes #345
2021-07-29 08:47:25 +05:30
pukkandan 901130bbcf Expand and escape environment variables correctly in outtmpl
Fixes: https://www.reddit.com/r/youtubedl/comments/otfmq3/ytdlp_same_parameters_different_results
2021-07-29 08:38:18 +05:30
pukkandan ea05b3020d
Remove `asr` appearing twice in `-F` 2021-07-26 03:38:15 +05:30
pukkandan 3ba7740dd8
[downloader] Pass `info_dict` to `progress_hook`s 2021-07-22 04:30:11 +05:30
pukkandan 245524e6a3
Release 2021.07.21
and fix some typos
Closes #538
2021-07-22 02:33:28 +05:30
pukkandan e37d0efbd9
Fix bug where `original_url` was not propagated when `_type`=`url` 2021-07-22 02:32:19 +05:30
Matt Broadway 982ee69a74
Add option `--cookies-from-browser` to load cookies from a browser (#488)
* also adds `--no-cookies-from-browser`

Original PR: https://github.com/ytdl-org/youtube-dl/pull/29201
Authored by: mbway
2021-07-22 02:02:49 +05:30
pukkandan ae30b84072
Add field `live_status` 2021-07-21 20:50:58 +05:30
pukkandan cc9d1493c6
bugfix for 50fed816dd 2021-07-21 20:50:49 +05:30
pukkandan b35496d825
Add `only_once` param for `write_debug` 2021-07-21 18:06:34 +05:30
pukkandan c84aeac6b5
Add `only_once` param for `report_warning`
Related: https://github.com/yt-dlp/yt-dlp/pull/488#discussion_r667527297
2021-07-21 01:39:58 +05:30
pukkandan 50fed816dd
Errors in playlist extraction should obey `--ignore-errors`
Related: https://github.com/yt-dlp/yt-dlp/issues/535#issuecomment-883277272, https://github.com/yt-dlp/yt-dlp/issues/518#issuecomment-881794754
2021-07-21 01:04:53 +05:30
pukkandan 3f698246b2
Rename `NOTE` in `-F` to `MORE INFO`
since it's often confused to be the same as `format_note`
2021-07-20 05:30:28 +05:30
pukkandan cca80fe611 [youtube] Extract even more thumbnails and reduce testing
* Also fix bug where `_test_url` was being ignored

Ref: https://stackoverflow.com/a/20542029
Related: #340
2021-07-20 03:46:06 +05:30
pukkandan 0ba692acc8
[youtube] Extract more thumbnails
* The thumbnail URLs are hard-coded and their actual existence is tested lazily
* Added option `--no-check-formats` to not test them

Closes #340, Related: #402, #337, https://github.com/ytdl-org/youtube-dl/issues/29049
2021-07-20 02:42:11 +05:30
pukkandan 3b297919e0
Revert "Merge webm formats into mkv if thumbnails are to be embedded (#173)"
This reverts commit 4d971a16b8 by @damianoamatruda
Closes #500

This was wrongly checking for `write_thumbnail`
2021-07-15 23:34:52 +05:30
pukkandan b5ac45b197
Fix selectors `all`, `mergeall` and add tests
Bug from: 981052c9c6
2021-07-07 21:10:43 +05:30
pukkandan 3acf6d3856
[Funimation] Rewrite extractor (See desc) (#444)
* Support direct `/player/` URL
* Treat the different versions of an episode as different formats of a single video. So `experience_id` can no longer be used as the video `id` and the `episode_id` is used instead. This means that all existing archives will break
* Extractor options `language` and `version` to pre-select them
* Compat option `seperate-video-versions` to fall back to old behavior (including using the old video IDs)

Closes #428
2021-07-07 02:51:29 +05:30
pukkandan bc97cdae67
[cleanup] Fix linter and some typos
Related: https://github.com/ytdl-org/youtube-dl/pull/29398
2021-07-04 03:04:25 +05:30
pukkandan 169dbde946
Fixes for `--list` options (See desc)
1. Fix `--list-formats-old`
2. Allow listing with `--quiet`
3. Allow various listings to work together
4. Allow `--print` to work with listing
2021-07-03 01:16:19 +05:30
pukkandan 981052c9c6 Some minor fixes and refactoring (see desc)
* [utils] Fix issues with reversal
* check_formats should catch `DownloadError`, not `ExtractorError`
* Simplify format selectors with `LazyList` and `yield from`
2021-07-02 08:17:37 +05:30
pukkandan 49c258e18d
[youtube] Fix subtitle names for age-gated videos
Related: https://github.com/iv-org/invidious/pull/2205#issuecomment-868680486
2021-06-25 23:10:31 +05:30
pukkandan d3f62c1967
Fix `--throttled-rate` when using `--load-info-json` 2021-06-25 22:57:17 +05:30
pukkandan 5d3a0e794b
Add `--extractor-args` to pass extractor-specific arguments 2021-06-25 20:10:28 +05:30
Adrik 4513a41a72
Process videos when using `--ignore-no-formats-error` (#441)
Authored by: krichbanana
2021-06-24 22:23:34 +05:30
pukkandan 6033d9808d
Fix `--flat-playlist` when entry has no `ie_key` 2021-06-24 22:23:34 +05:30
pukkandan 51d9739f80
Add option `--throttled-rate` below which video data is re-extracted
Currently only for HTTP downloads

Closes #430, workaround for https://github.com/ytdl-org/youtube-dl/issues/29326
2021-06-23 05:29:58 +05:30
pukkandan e36d50c5dd
[websockets] Add `WebSocketFragmentFD` (#399)
Necessary for #392

Co-authored by: nao20010128nao, pukkandan
2021-06-21 22:56:36 +05:30
pukkandan f89b3e2d7a
Skip fixup of existing files and add `--fixup force` to force it 2021-06-20 04:59:34 +05:30
pukkandan fd7cfb6444
[cleanup] Refactor fixup 2021-06-20 04:26:11 +05:30
pukkandan 9fea350f0d
Fix id sanitization in filenames
Closes #415
2021-06-17 02:32:24 +05:30
pukkandan e858a9d6d3
[EmbedThumbnail] Add compat-option `embed-thumbnail-atomicparsley`
to force use of atomicparsley for embedding thumbnails in mp4

Related: #411
2021-06-16 22:33:32 +05:30
pukkandan 551f93885e
Ignore `images` formats from merge 2021-06-13 04:16:42 +05:30
pukkandan 8326b00aab
Allow `images` formats
Necessary for #343.

* They are identified by `vcodec=acodec='none'`
* These formats show as the worst in `-F`
* Any postprocessor that expects audio/video will be skipped
* `b*` and all related selectors will skip such formats
* This commit also does not add any selector for downloading such formats. They have to be explicitly requested by the `format_id`. Implementation of a selector is left for when #389 is resolved
2021-06-13 03:45:53 +05:30
pukkandan b0249bcaf0
Expand `--check-formats` to thumbnails
Closes #402
2021-06-13 03:45:53 +05:30
pukkandan 21cd8fae49
Use `NamedTemporaryFile` for `--check-formats` 2021-06-13 03:45:53 +05:30
pukkandan 8ba8714880
[EmbedThumbnail] Fix for already downloaded thumbnail 2021-06-11 19:13:24 +05:30
pukkandan 187986a857
Better error handling of syntax errors in `-f` 2021-06-11 19:13:22 +05:30
pukkandan 0181adefc6
[build] Build Windows x86 version with py3.7
and remove redundant tests
Closes #390

:ci skip

Co-authored by: pukkandan, shirt-dev
2021-06-10 01:41:04 +05:30
pukkandan 385a27fad1
Improve offset parsing in outtmpl 2021-06-09 20:01:57 +05:30
pukkandan 639f1cea92
Fix `%d` and empty default in outtmpl
Closes #388
2021-06-09 15:37:15 +05:30
pukkandan b5c5d84f60
Revert "[build] Build Windows x86 version with py3.8"
This reverts commit aa75e51f99.

See #390

This is being reverted instead of modified due to #388
2021-06-09 15:37:15 +05:30
pukkandan aa75e51f99
[build] Build Windows x86 version with py3.8
and remove redundant tests
:ci skip

Ao-authored by: pukkandan, shirt-dev
2021-06-09 02:18:55 +05:30
pukkandan 76a264ac9e
Make outtmpl more robust and catch errors early 2021-06-08 20:11:00 +05:30
pukkandan 324ad82006
[utils] Generalize `traverse_dict` to `traverse_obj` 2021-06-08 19:26:44 +05:30
pukkandan bd99f6e648
Add field `original_url` with the user-inputted URL
So that they can be processed by `--parse-metadata` for example

`webpage_url` is the same, but may be modified by the extractor
2021-06-08 00:20:06 +05:30
pukkandan ecb5419149
Make more fields available for `--print` when used with `--flat-playlist` 2021-06-08 00:17:53 +05:30
pukkandan 87ea7dfc04
Fix filename sanitization
Bug from 752cda3880
2021-06-06 19:36:28 +05:30
pukkandan 752cda3880
Fix and refactor `prepare_outtmpl`
The following tests would have failed previously:
%(id)d %(id)r
%(ext)s-%(ext|def)d
%(width|)d
%(id)r %(height)r
%(formats.0)r
%s
2021-06-06 00:59:04 +05:30
felix cc52de4356
[cleanup] Point all shebang to `python3` (#372)
Authored by: fstirlitz
2021-06-06 00:59:04 +05:30
pukkandan 885cc0b75c
[embedthumbnail] Embed if any thumbnail was downloaded, not just the best 2021-05-29 02:31:14 +05:30
pukkandan ae8f99e648
Remove `None` values from `info.json` 2021-05-29 02:31:13 +05:30
pukkandan 835a1478b4
Write messages to `stderr` when both `quiet` and `verbose` 2021-05-29 02:31:10 +05:30
pukkandan 120fe5134a
Pre-check archive and filters during playlist extraction
This makes `--break-on-existing` much faster.
It also helps `--break-on-reject` if the playlist extractor can extract the relevant fields
2021-05-29 02:12:09 +05:30
pukkandan 56a8fb4f77
Refactor `__process_playlist` using `LazyList` 2021-05-29 02:12:09 +05:30
pukkandan c77495e3a4
[cleanup] `_match_entry` 2021-05-29 02:12:07 +05:30
pukkandan c19bc311cb
[cleanup] Refactor updater
The updater now uses `.update.run_update` and not `.update.update_self`.
Although I don't expect anyone to be using the updater via API, a wrapper `update_self` is provided for compatibility just in case
2021-05-26 01:13:08 +05:30
pukkandan bc516a3f3c
Sanitize and sort playlist thumbnails
Closes #341
2021-05-23 17:28:15 +05:30
pukkandan 18e674b4f6
[ffmpeg] Download and merge in a single step if possible 2021-05-23 03:53:18 +05:30
pukkandan 28b0eb0f65
[cleanup] See desc
* Remove struct from `embedthumbnail`
* Use bullet lists in readme where numbered list don't make sense
* Fix error introduced in 9c2b75b561 when `ie_result` is `None`
2021-05-20 18:02:58 +05:30
pukkandan 9c2b75b561
Field `additional_urls` to download additional videos from metadata 2021-05-19 18:11:15 +05:30
pukkandan 4ec82a72bb
Ensure `post_extract` and `pre_process` only run once
Previously, they ran once for each format requested
2021-05-19 16:48:22 +05:30
pukkandan 07cce701de
[cleanup] linter, code formatting and readme 2021-05-19 16:48:20 +05:30
pukkandan ff2751ac9c
[youtube] Always extract `maxresdefault` thumbnail
Fixes: https://github.com/ytdl-org/youtube-dl/issues/29049
2021-05-18 19:31:17 +05:30
pukkandan a06916d98e
[extractor] Add `write_debug` and `get_param` 2021-05-17 18:59:51 +05:30
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
2021-05-17 18:24:17 +05:30
pukkandan 7aee40c13c
Fix bug in listing subtitles
Bug introduced by: 2412044c90
2021-05-17 18:24:16 +05:30
pukkandan 2412044c90
Add field `name` for subtitles
Co-authored by: pukkandan, tpikonen

Based on: #310, https://github.com/ytdl-org/youtube-dl/pull/26112
2021-05-15 19:27:52 +05:30
pukkandan fe346461ff
Fix `--check-formats` when there is network error 2021-05-15 19:26:01 +05:30
pukkandan 53c18592d3
Add option `--print`
Deprecates: `--get-description`, `--get-duration`, `--get-filename`, `--get-format`, `--get-id`, `--get-thumbnail`, `--get-title`, `--get-url`
Closes #295
2021-05-14 13:15:47 +05:30
pukkandan e632bce2e4
[options] Refactor callbacks 2021-05-14 13:15:47 +05:30
pukkandan 0760b0a7e2
Standardize `write_debug` 2021-05-14 13:15:29 +05:30
pukkandan d908aa636a
[cleanup] Fix typos 2021-05-11 23:34:40 +05:30
pukkandan 4171221823
Add compat-option `no-attach-infojson` 2021-05-11 14:25:31 +05:30
pukkandan 53ed7066ab
Option `--compat-options` to revert some of yt-dlp's changes
* Deprecates `--list-formats-as-table`, `--list-formats-old`
2021-05-11 13:30:48 +05:30
pukkandan a61f4b287b
Deprecate support for python versions < 3.6
Closes #267
2021-05-09 04:32:23 +05:30
pukkandan 41d1cca328
Update to ytdl-commit-a726009
[blinkx] Remove extractor
a726009987
2021-05-06 21:31:20 +05:30
pukkandan 717297545b
Fix `playlist_index` and add `playlist_autonumber` (#302)
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
2021-05-06 20:56:19 +05:30
pukkandan e8e738406a
Add experimental option `--check-formats` to test the URLs before format selection 2021-05-06 20:50:44 +05:30
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
2021-05-06 20:28:58 +05:30
pukkandan 848887eb7a
[downloader] Fix `quiet` and `to_stderr` 2021-05-04 22:38:10 +05:30
pukkandan 3158150cb7
[utils] Add `network_exceptions` 2021-05-04 22:36:18 +05:30
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
2021-05-03 22:49:05 +05:30
pukkandan 0d1bb027aa
Move option warnings to `YoutubeDL`
Previously, these warnings did not obey `--no-warnings` and did not output colors
2021-05-03 22:49:04 +05:30
pukkandan 4cd0a709aa
Fix `preload_download_archive` writing verbose message to `stdout`
* And move it after all deprecated warnings
2021-05-03 22:49:03 +05:30
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
2021-04-28 19:18:06 +05:30
pukkandan 598d185db1
Fix case sensitivity of format selector
Bug introduced in f8d4ad9ab0
2021-04-26 10:56:56 +05:30
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`
2021-04-22 04:19:33 +05:30
pukkandan 26e2805c3f
Add option `--skip-playlist-after-errors`
Allows to skip the rest of a playlist after a given number of errors are encountered
2021-04-22 02:16:31 +05:30
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 #253
2021-04-20 02:58:03 +05:30
pukkandan b7da73eb19
Add option `--ignore-no-formats-error`
* Ignores the "no video format" and similar errors
* Experimental - Some extractors may still throw these errors
2021-04-17 08:40:30 +05:30
pukkandan 921b76cab8
Ensure `mergeall` selects best format when multistreams are disabled 2021-04-13 10:53:25 +05:30
pukkandan 56d868dbb7
Allow running some `postprocessors` before actual download 2021-04-12 02:12:46 +05:30
pukkandan e01d6aa435
Fix `mergeall` when requested formats are unavailable 2021-04-10 22:29:58 +05:30
pukkandan 52a8a1e1b9
Option to choose different downloader for different protocols
* Renamed `--external-downloader-args` to `--downloader-args`
* Added `native` as an option for the downloader
* Use similar syntax to `--downloader-args` etc. Eg: `--downloader dash:native --downloader aria2c`
* Deprecated `--hls-prefer-native` and `--hls-prefer-ffmpeg` since the same can now be done with `--downloader "m3u8:native"` and `m3u8:ffmpeg` respectively
* Split `frag_urls` protocol into `m3u8_frag_urls` and `dash_frag_urls`
* Standardize shortening of protocol names with `downloader.shorten_protocol_name`
2021-04-10 20:57:52 +05:30
pukkandan f8d4ad9ab0
Format selector `mergeall` to download and merge all formats 2021-04-10 20:57:27 +05:30
pukkandan eff635394a
Ability to select nth best format
Eg: -f `bv*.2`

* Also cleaned up the related format selection code
2021-04-02 22:16:52 +05:30
pukkandan b050d210df
Fix some typos and linter 2021-04-01 14:16:10 +05:30
pukkandan 143db31d48
Parse metadata from multiple fields
Closes #196
2021-03-25 03:32:15 +05:30
pukkandan 498f560638
Ability to load playlist infojson
* If `--no-clean-infojson` is given, the video ids are saved/loaded from in the infojson along with their playlist index
* If a video entry that was not saved is requested, we fallback to using `webpage_url` to re-extract the entries

Related: https://github.com/yt-dlp/yt-dlp/issues/190#issuecomment-804921024
2021-03-24 01:57:50 +05:30
pukkandan 394dcd4486
Write current epoch to infojson when using `--no-clean-infojson`
Closes #191
2021-03-24 00:34:33 +05:30
pukkandan 4d971a16b8
Merge webm formats into mkv if thumbnails are to be embedded (#173)
Co-authored by: Damiano Amatruda <damiano.amatruda@outlook.com>
2021-03-20 09:34:52 +05:30
Damiano Amatruda 3561530776
Parse resolution in info dictionary (#173) 2021-03-20 09:34:52 +05:30
Damiano Amatruda 4690688658
Use headers and cookies when downloading subtitles (#173) 2021-03-20 09:34:52 +05:30
pukkandan 23c1a66730 Make sure `post_hook` gets the final filename 2021-03-20 09:31:53 +05:30
pukkandan a515a78dd3
fix some typos and linter 2021-03-18 22:19:31 +05:30
pukkandan 75d43ca080
Option to keep private keys in the infojson
Options: --clean-infojson, --no-clean-infojson

Related: https://github.com/yt-dlp/yt-dlp/issues/42#issuecomment-800778391
2021-03-18 21:00:45 +05:30
pukkandan 5226731e2d
Recursively remove private keys from infojson
Related: https://github.com/yt-dlp/yt-dlp/issues/42
2021-03-18 21:00:45 +05:30
pukkandan dcf64d43e0
[movefiles] Fix bugs and make more robust 2021-03-18 20:54:53 +05:30
pukkandan 10db0d2f57
Update to ytdl-commit-3be0980
3be098010f
2021-03-15 04:52:06 +05:30
pukkandan e92caff5d5
Refactor (See desc)
* Create `FFmpegPostProcessor.real_run_ffmpeg` that can accept multiple input/output files along with switches for each
* Rewrite `cli_configuration_args` and related functions
* Create `YoutubeDL._ensure_dir_exists` - this was previously defined in multiple places
2021-03-14 20:02:55 +05:30
pukkandan 0a473f2f0f
More improvements to HLS/DASH external downloader code
* Fix error when there is no `protocol` in `info_dict`
* Move HLS byte range detection to `Aria2cFD` so that the download will fall back to the native downloader instead of ffmpeg
* Fix bug with getting no fragments in DASH
* Convert `check_results` in `can_download` to a generator
2021-03-11 22:07:42 +05:30
shirt-dev d7009caa03
Improve HLS/DASH external downloader code (#162)
Authored by: shirt
2021-03-10 20:09:40 +05:30
pukkandan 5ef7d9bdd8
Release 2021.03.01 2021-03-01 05:39:50 +05:30
pukkandan 62bff2c170
Add option `--extractor-retries` to retry on known extractor errors
* Currently only used by youtube

Fixes https://github.com/ytdl-org/youtube-dl/issues/28194
Possibly also fixes: https://github.com/ytdl-org/youtube-dl/issues/28289 (can not confirm since the issue isn't reliably reproducible)
2021-03-01 05:18:37 +05:30
pukkandan 277d6ff5f2
Extract comments only when needed #95 (Closes #94) 2021-02-28 20:26:08 +05:30
pukkandan 1cf376f55a Add option `--sleep-requests` to sleep b/w requests (Closes #106)
* Also fix documentation of `sleep_interval_subtitles`

Related issues:
https://github.com/blackjack4494/yt-dlc/issues/158
https://github.com/blackjack4494/youtube-dlc/issues/195
https://github.com/ytdl-org/youtube-dl/pull/28270
https://github.com/ytdl-org/youtube-dl/pull/28144
https://github.com/ytdl-org/youtube-dl/issues/27767
https://github.com/ytdl-org/youtube-dl/issues/23638
https://github.com/ytdl-org/youtube-dl/issues/26287
https://github.com/ytdl-org/youtube-dl/issues/26319
2021-02-27 18:14:42 +05:30
Pccode66 7a5c1cfe93
Completely change project name to yt-dlp (#85)
* All modules and binary names are changed
* All documentation references changed
* yt-dlp no longer loads youtube-dlc config files
* All URLs changed to point to organization account

Co-authored-by: Pccode66
Co-authored-by: pukkandan
2021-02-25 00:15:56 +05:30