Commit Graph

213 Commits

Author SHA1 Message Date
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