Commit Graph

204 Commits (c36513f1be2ef3d3cec864accbffda1afaa06ffd)

Author SHA1 Message Date
pukkandan 8a82af3511
[cleanup] Misc fixes and cleanup
Closes #3780, Closes #3853, Closes #3850
3 years ago
pukkandan d9473db78a
[ModifyChapters] Fix repeated removal of small segments
Closes #3846
3 years ago
pukkandan 3a85e9cee9
[ffmpeg] Check version lazily
Closes #3830
3 years ago
pukkandan 5792c950bf
[compat] Implement `compat.imghdr`
Python 3.11 deprecates `imghdr` module
3 years ago
pukkandan 0f06bcd759
[cleanup] Minor fixes (See desc)
* [youtube] Fix `--youtube-skip-dash-manifest`
* [build] Use `$()` in `Makefile`. Closes #3684
* Fix bug in 385ffb467b
* Fix bug in 43d7f5a5d0
* [cleanup] Remove unnecessary `utf-8` from `str.encode`/`bytes.decode`
* [utils] LazyList: Expose unnecessarily "protected" attributes
and other minor cleanup
3 years ago
pukkandan 6f7563beb7
[XAttrMetadata] Refactor and document dependencies 3 years ago
pukkandan 43d7f5a5d0
[EmbedThumbnail] Do not obey `-k` 3 years ago
pukkandan 1d485a1a79
[cleanup] Misc fixes
Closes #3565, https://github.com/yt-dlp/yt-dlp/issues/3514#issuecomment-1105944364
3 years ago
pukkandan e13945a2fe
[ffmpeg] Fix features detection 3 years ago
pukkandan ca04e1bf49
[Metadata] Remove filename from attached info-json 3 years ago
pukkandan b0f636beb4
[Sponsorblock] Don't crash when duration is unknown
CLoses #3529
3 years ago
Evan Spensley 7774db5bf9
[EmbedThumbnail] Disable thumbnail conversion for mkv (#3512)
Closes #3209
Authored by: evansp
3 years ago
pukkandan 9b8ee23b99
[dependencies] Create module with all dependency imports 3 years ago
pukkandan 1e9969f4f5
bugfix for a44ca5a470, 19a0394044, 77f9033095
Closes #3472
3 years ago
pukkandan 19a0394044
[cleanup] Misc cleanup and refactor (#2173) 3 years ago
pukkandan 3d3bb1688b
[docs] Improve embedding docs and other minor fixes 3 years ago
pukkandan 743f39750c
Fix bug in 66cf3e1001 3 years ago
pukkandan 66cf3e1001
[EmbedSubtitle] Enable for more video extensions
Closes #3382
3 years ago
pukkandan e5a998f368
[cleanup] Misc cleanup (#2173)
Authored by: fstirlitz, pukkandan
3 years ago
pukkandan f82711587c
[cleanup] Sort imports
Using https://github.com/PyCQA/isort

    isort -m VERTICAL_HANGING_INDENT --py 36 -l 80 --rr -n --tc .
3 years ago
pukkandan 86e5f3ed2e
[cleanup] Upgrade syntax
Using https://github.com/asottile/pyupgrade

1. `__future__` imports and `coding: utf-8` were removed
2. Files were rewritten with `pyupgrade --py36-plus --keep-percent-format`
3. f-strings were cherry-picked from `pyupgrade --py36-plus`

Extractors are left untouched (except removing header) to avoid unnecessary merge conflicts
3 years ago
pukkandan f9934b9614
[cleanup] Mark some compat variables for removal (#2173)
Authored by fstirlitz, pukkandan
3 years ago
pukkandan 5a727063c5
[FFmpegMetadataPP] Remove `\0` from metadata 3 years ago
pukkandan f894294636
[EmbedThumbnail] Do not remove id3v1 tags 3 years ago
pukkandan 22fba53fbd
[FfmpegMetadata] Write id3v1 tags 3 years ago
pukkandan a44ca5a470
[cleanup] Misc fixes
Closes https://github.com/yt-dlp/yt-dlp/pull/3213, Closes https://github.com/yt-dlp/yt-dlp/pull/3117

Related: https://github.com/yt-dlp/yt-dlp/issues/3146#issuecomment-1077323114, https://github.com/yt-dlp/yt-dlp/pull/3277#discussion_r841019671, a825ffbffa (commitcomment-68538986), https://github.com/yt-dlp/yt-dlp/issues/2360, 5fa3c9a88f (r70393519), 5fa3c9a88f (r70393254)
3 years ago
pukkandan af4944d84b
Fix bug in 8a7f68d0b1
Closes #3241
3 years ago
pukkandan 8a7f68d0b1
[ffmpeg] Cache version data
Related: https://github.com/dasl-/pifi/issues/9
3 years ago
pukkandan 4a3175fc4c
[VideoConvertor] Ensure all streams are copied
Closes #3200
3 years ago
pukkandan 5cf34021f5
[Concat] Ensure final directory exists
Fixes https://github.com/yt-dlp/yt-dlp/issues/3181#issuecomment-1079622589
3 years ago
pukkandan a3f2445e29
[postprocessor,cleanup] Create `_download_json` 3 years ago
pukkandan 5ca764c506
[FFmpegVideoConvertor] Add more formats to `--remux-video` 3 years ago
pukkandan 2b38f7b2bc
[MetadataParser] Validate outtmpl early 3 years ago
pukkandan d1b5f70bc9
[cleanup] Refactor `__init__.py` (#2570)
* Split `__init__` code into multiple functions
* Clean up validation code by grouping similar types of options
* Expose `parse_options` to third parties
3 years ago
pukkandan 72073451be
[ThumbnailsConvertor] Support `webp`
Closes #2226
3 years ago
Nil Admirari 7a34b5d628
[SponsorBlock] Fixes for highlight and "full video labels" (#2849)
Authored by: nihil-admirari
3 years ago
pukkandan ed66a17ef0
[FFmpegConcat] Abort on `--simulate` 3 years ago
Nil Admirari ae419aa94f
[Sponsorblock] minor fixes (#2793)
* preserve mtime - Closes #2769
* keep concat spec on failure

Authored by: nihil-admirari
3 years ago
pukkandan 460a1c08b9
[FFmpegConcat] Abort on --skip-download and download errors
Closes #2470
3 years ago
pukkandan 88f23a18e0
[docs,cleanup] Fix linter and misc cleanup
Closes #2419
3 years ago
pukkandan 6970b6005e
[cleanup] Minor fixes
Closes #2334
3 years ago
pukkandan 3b603dbdf1
Add option `--concat-playlist`
Closes #1855, related: #382
3 years ago
pukkandan 5df1ac92bd
[ffmpeg] Ignore unknown streams
Closes #2307
3 years ago
pukkandan ed8d87f911
[cleanup, docs] Minor fixes
Closes #2230
3 years ago
pukkandan 397235c52b
[ffmpeg] Standardize use of `-map 0`
Closes #2182
3 years ago
pukkandan 61e9d9268c
Fix bug in 8896899216
Closes #2215
3 years ago
pukkandan 1e43a6f733
Allow `--exec` to be run at any post-processing stage
Deprecates `--exec-before-download`
3 years ago
pukkandan 8896899216
[FfmpegMetadata] Allow setting metadata of individual streams
Closes #877
3 years ago
pukkandan 77cee0f188
[EmbedThumbnail] Prefer AtomicParsley over ffmpeg if available 3 years ago
pukkandan 6a17677577
[ThumbnailsConvertor] Fix for when there are no thumbnails
Closes #2125
3 years ago
pukkandan 8eb4b1bb8e
[ffmpeg] Fix position of `--ppa`
Bug in ca5db158ae
Closes #2112
3 years ago
pukkandan b69fd25c25
[cleanup] Misc cleanup
Closes #1942 #1976 #2020 #2058 #1984
3 years ago
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
3 years ago
pukkandan ca5db158ae
[postprocessor/ffmpeg] Always add `faststart`
Closes #1491
3 years ago
Nil Admirari 8157a09d22
[SponsorBlock] Add Filler and Highlight categories (#1664)
Authored by: nihil-admirari, pukkandan
3 years ago
pukkandan 9bdd99cf39
[EmbedSubtitle] Disable duration check temporarily
Closes #1870, #1385
3 years ago
pukkandan a804f6d89c
[cleanup Fix some typos
* `MetadataFromFieldPP` is not deprecated!
* Wrong args to `MetadataFromFieldPP`
* Some mistakes in change log
* Type in build.yml causing release tag to be placed on wrong commit
3 years ago
pukkandan ee8dd27a73
[cleanup] Add deprecation warnings 3 years ago
pukkandan f304da8a29
[cleanup] Misc cleanup
Closes #1805, closes #1800
3 years ago
pukkandan 5ce1d13eba
[EmbedSubtitles] Slightly relax duration check
and related cleanup
Closes #1385
3 years ago
pukkandan e04b003e64
[FixupM3u8] Fixup MPEG-TS in MP4 container
Closes #1701, https://github.com/ytdl-org/youtube-dl/issues/26410
3 years ago
pukkandan 467b6b8387
[ExtractAudio] Support `alac`
Closes #1707
3 years ago
pukkandan dac5df5a98
Add option `--embed-info-json` to embed info-json in mkv
Closes #1644
3 years ago
pukkandan f279aaee8e
Add compat-option embed-metadata 3 years ago
pukkandan 39c04074e7
[ExtractAudio] Fix conversion to `wav`
Closes #1645
3 years ago
pukkandan c586f9e8de
[cleanup] minor fixes 3 years ago
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
3 years ago
pukkandan 832e9000c7
[ffmpeg] Accurately detect presence of setts
Closes #1237
3 years ago
CrypticSignal 673c0057e8
[ExtractAudio] Use `libfdk_aac` if available
Closes #1502
Authored by: CrypticSignal
3 years ago
pukkandan 9af98e17bd
[ffmpeg] Framework for feature detection
Related: #1502, #1237, https://github.com/ytdl-org/youtube-dl/pull/29581
3 years ago
pukkandan 31c49255bf
[ExtractAudio] Rescale --audio-quality correctly
Authored by: CrypticSignal, pukkandan
3 years ago
pukkandan abad800058
[downloader/ffmpeg] Fix vtt download with ffmpeg 3 years ago
pukkandan ef58c47637
[SponsorBlock] Obey `extractor-retries` and `sleep-requests` 3 years ago
pukkandan d3c93ec2b7
Don't create console for subprocesses on Windows (#1261)
Closes #1251
3 years ago
Nil Admirari e619d8a752
[ModifyChapters] Do not mutate original chapters (#1322)
Closes #1295 
Authored by: nihil-admirari
3 years ago
pukkandan 2d9ec70423
[ModifyChapters] Allow removing sections by timestamp
Eg: --remove-chapters "*10:15-15:00".
The `*` prefix is used so as to avoid any conflicts with other valid regex
3 years ago
pukkandan b11d210156
[EmbedMetadata] Allow overwriting all default metadata
with `meta_default` key
3 years ago
pukkandan 03b4de722a
[downloader] Fix slow progress hooks
Closes #1301
3 years ago
pukkandan 9dda99f2fc [Merger] Do not add `aac_adtstoasc` to non-hls audio 3 years ago
pukkandan 91b6c884c9
Revert "[ffmpeg] Set max probesize to workaround AAC HLS stream issues (#1109)"
This reverts commit 250a938de8.

This is no longer necessary since 7687c8ac6e
3 years ago
pukkandan aa9a92fdbb
[downloader/ffmpeg] Fix bug in initializing `FFmpegPostProcessor`
When `FFmpegFD` initializes the PP, it passes `self` as the `downloader`
But it does not have a `_postprocessor_hooks` attribute

Closes #1211
3 years ago
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
3 years ago
pukkandan a1c3967307
[EmbedSubtitle, SubtitlesConvertor] Fix error when subtitle file is missing
Closes #1152, #1134
Bug from 8e25d624df
3 years ago
pukkandan e6f21b3d92
[docs,cleanup] Some minor refactoring and improve docs 3 years ago
pukkandan 3ae5e79774
[postprocessor] Add plugin support
Adds option `--use-postprocessor` to enable them
3 years ago
pukkandan 1f2a268bd3
[embedsubtitle] Fix error when duration is unknown 3 years ago
shirt 250a938de8
[ffmpeg] Set max probesize to workaround AAC HLS stream issues (#1109)
Fixes: #618, #998, #1039

Authored by: shirt-dev
3 years ago
pukkandan 51ff9ca0b0
[xattr] bugfix for b19404591a 3 years ago
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
3 years ago
pukkandan 50eff38c1c
bugfix for a21e0ab1a1
Closes #1061
3 years ago
pukkandan a21e0ab1a1
[ffmpeg] Add `aac_adtstoasc` when merging if needed
Related: #1039
3 years ago
Nil Admirari c6af2dd8e5
[SponsorBlock] Improve merge algorithm (#999)
Authored by: nihil-admirari
3 years ago
pukkandan 165efb823b
[ModifyChapters] fixes (See desc)
* [docs] Fix typo
* Do not enable `sponskrub` by default
* Fix `--force-keyframes-at-cuts`
* Don't embed subtitles if the video has been cut. Previously, running `--remove-chapters` with `--embed-subs` multiple times caused repeated cuts and out-of-sync subtitles
* Store `_real_duration` to prevent running ffprobe multiple times
3 years ago
Nil Admirari 7a340e0df3
Native SponsorBlock implementation and related improvements (#360)
SponsorBlock options:
* The fetched sponsor sections are written to infojson
* `--sponsorblock-remove` removes specified chapters from file
* `--sponsorblock-mark` marks the specified sponsor sections as chapters
* `--sponsorblock-chapter-title` to specify sponsor chapter template
* `--sponsorblock-api` to use a different API

Related improvements:
* Split `--embed-chapters` from `--embed-metadata`
* Add `--remove-chapters` to remove arbitrary chapters
* Add `--force-keyframes-at-cuts` for more accurate cuts when removing and splitting chapters

Deprecates all `--sponskrub` options

Authored by: nihil-admirari, pukkandan
3 years ago
pukkandan 8e25d624df
[EmbedSubtitle] Continue even if some files are missing 3 years ago
Paul Wrubel d75201a873
Use `os.replace` where applicable (#793)
When using 
```py
os.remove(encodeFilename(filename))
os.rename(encodeFilename(temp_filename), encodeFilename(filename))
```
the `os.remove` need not be atomic and so can be executed arbitrarily compared to the immediately following rename call. It is better to use `os.replace` instead

Authored by: paulwrubel
3 years ago
pukkandan 330690a214
[downloader/ffmpeg] Allow passing custom arguments before -i
Closes #686
3 years ago
pukkandan 37242e56f2
Fix bug during subtitle conversion 3 years ago
pukkandan a8731fcc1d minor bugfixes
bugs due to be2fc5b212, e9f4ccd19e
3 years ago
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
3 years ago