From 597c18665e352f5ed482f2cf1de4226f5a0eeb88 Mon Sep 17 00:00:00 2001 From: pukkandan Date: Mon, 15 Mar 2021 05:30:18 +0530 Subject: [PATCH] Release 2021.03.15 --- Changelog.md | 64 +++++++++++++++++++++++++++++++---------------- README.md | 28 ++++++++++++--------- supportedsites.md | 5 ++++ yt_dlp/options.py | 11 ++++---- 4 files changed, 68 insertions(+), 40 deletions(-) diff --git a/Changelog.md b/Changelog.md index 33d3d8ab4..933bc27c2 100644 --- a/Changelog.md +++ b/Changelog.md @@ -17,6 +17,24 @@ --> +### 2021.03.15 +* **Split video by chapters**: using option `--split-chapters` + * The output file of the split files can be set with `-o`/`-P` using the prefix `chapter:` + * Additional keys `section_title`, `section_number`, `section_start`, `section_end` are available in the output template +* **Parallel fragment downloads** by [shirt](https://github.com/shirt-dev) + * Use option `--concurrent-fragments` (`-N`) to set the number of threads (default 1) +* Merge youtube-dl: Upto [commit/3be0980](https://github.com/ytdl-org/youtube-dl/commit/3be098010f667b14075e3dfad1e74e5e2becc8ea) +* [Zee5] Add Show Extractor by [Ashish](https://github.com/Ashish) and [pukkandan](https://github.com/pukkandan) +* [rai] fix drm check [nixxo](https://github.com/nixxo) +* [zee5] Support zee5originals +* [wimtv] Add extractor by [nixxo](https://github.com/nixxo) +* [mtv] Add mtv.it and extract series metadata by [nixxo](https://github.com/nixxo) +* [pluto.tv] Add extractor by [kevinoconnor7](https://github.com/kevinoconnor7) +* [Youtube] Rewrite comment extraction by [colethedj](https://github.com/colethedj) +* [embedthumbnail] Set mtime correctly +* Refactor some postprocessor/downloader code by [pukkandan](https://github.com/pukkandan) and [shirt](https://github.com/shirt-dev) + + ### 2021.03.07 * [youtube] Fix history, mixes, community pages and trending by [pukkandan](https://github.com/pukkandan) and [colethedj](https://github.com/colethedj) * [youtube] Fix private feeds/playlists on multi-channel accounts by [colethedj](https://github.com/colethedj) @@ -348,31 +366,33 @@ * Cleaned up the fork for public use +**PS**: All uncredited changes above this point are authored by [pukkandan](https://github.com/pukkandan) + ### Unreleased changes in [blackjack4494/yt-dlc](https://github.com/blackjack4494/yt-dlc) -* Updated to youtube-dl release 2020.11.26 -* [youtube] +* Updated to youtube-dl release 2020.11.26 by [pukkandan](https://github.com/pukkandan) +* Youtube improvements by [pukkandan](https://github.com/pukkandan) * Implemented all Youtube Feeds (ytfav, ytwatchlater, ytsubs, ythistory, ytrec) and SearchURL - * Fix ytsearch not returning results sometimes due to promoted content - * Temporary fix for automatic captions - disable json3 * Fix some improper Youtube URLs * Redirect channel home to /video * Print youtube's warning message - * Multiple pages are handled better for feeds + * Handle Multiple pages for feeds better +* [youtube] Fix ytsearch not returning results sometimes due to promoted content by [colethedj](https://github.com/colethedj) +* [youtube] Temporary fix for automatic captions - disable json3 by [blackjack4494](https://github.com/blackjack4494) * Add --break-on-existing by [gergesh](https://github.com/gergesh) -* Pre-check video IDs in the archive before downloading -* [bitwave.tv] New extractor -* [Gedi] Add extractor -* [Rcs] Add new extractor -* [skyit] Add support for multiple Sky Italia website and removed old skyitalia extractor -* [france.tv] Fix thumbnail URL -* [ina] support mobile links -* [instagram] Fix extractor -* [itv] BTCC new pages' URL update (articles instead of races) -* [SouthparkDe] Support for English URLs -* [spreaker] fix SpreakerShowIE test URL -* [Vlive] Fix playlist handling when downloading a channel -* [generic] Detect embedded bitchute videos -* [generic] Extract embedded youtube and twitter videos -* [ffmpeg] Ensure all streams are copied -* Fix for os.rename error when embedding thumbnail to video in a different drive -* make_win.bat: don't use UPX to pack vcruntime140.dll +* Pre-check video IDs in the archive before downloading by [pukkandan](https://github.com/pukkandan) +* [bitwave.tv] New extractor by [lorpus](https://github.com/lorpus) +* [Gedi] Add extractor by [nixxo](https://github.com/nixxo) +* [Rcs] Add new extractor by [nixxo](https://github.com/nixxo) +* [skyit] New skyitalia extractor by [nixxo](https://github.com/nixxo) +* [france.tv] Fix thumbnail URL by [renalid](https://github.com/renalid) +* [ina] support mobile links by [B0pol](https://github.com/B0pol) +* [instagram] Fix thumbnail extractor by [nao20010128nao](https://github.com/nao20010128nao) +* [SouthparkDe] Support for English URLs by [xypwn](https://github.com/xypwn) +* [spreaker] fix SpreakerShowIE test URL by [pukkandan](https://github.com/pukkandan) +* [Vlive] Fix playlist handling when downloading a channel by [kyuyeunk](https://github.com/kyuyeunk) +* [tmz] Fix extractor by [diegorodriguezv](https://github.com/diegorodriguezv) +* [generic] Detect embedded bitchute videos by [pukkandan](https://github.com/pukkandan) +* [generic] Extract embedded youtube and twitter videos by [diegorodriguezv](https://github.com/diegorodriguezv) +* [ffmpeg] Ensure all streams are copied by [pukkandan](https://github.com/pukkandan) +* [embedthumbnail] Fix for os.rename error by [pukkandan](https://github.com/pukkandan) +* make_win.bat: don't use UPX to pack vcruntime140.dll by [jbruchon](https://github.com/jbruchon) \ No newline at end of file diff --git a/README.md b/README.md index 35b89ea8b..a38d42048 100644 --- a/README.md +++ b/README.md @@ -57,7 +57,7 @@ The major new features from the latest release of [blackjack4494/yt-dlc](https:/ * **[Format Sorting](#sorting-formats)**: The default format sorting options have been changed so that higher resolution and better codecs will be now preferred instead of simply using larger bitrate. Furthermore, you can now specify the sort order using `-S`. This allows for much easier format selection that what is possible by simply using `--format` ([examples](#format-selection-examples)) -* **Merged with youtube-dl v2021.03.03**: You get all the latest features and patches of [youtube-dl](https://github.com/ytdl-org/youtube-dl) in addition to all the features of [youtube-dlc](https://github.com/blackjack4494/yt-dlc) +* **Merged with youtube-dl v2021.03.14**: You get all the latest features and patches of [youtube-dl](https://github.com/ytdl-org/youtube-dl) in addition to all the features of [youtube-dlc](https://github.com/blackjack4494/yt-dlc) * **Merged with animelover1984/youtube-dl**: You get most of the features and improvements from [animelover1984/youtube-dl](https://github.com/animelover1984/youtube-dl) including `--get-comments`, `BiliBiliSearch`, `BilibiliChannel`, Embedding thumbnail in mp4/ogg/opus, Playlist infojson etc. Note that the NicoNico improvements are not available. See [#31](https://github.com/yt-dlp/yt-dlp/pull/31) for details. @@ -66,17 +66,19 @@ The major new features from the latest release of [blackjack4494/yt-dlc](https:/ * Youtube search (`ytsearch:`, `ytsearchdate:`) along with Search URLs works correctly * Redirect channel's home URL automatically to `/video` to preserve the old behaviour +* **Split video by chapters**: Videos can be split into multiple files based on chapters using `--split-chapters` + +* **Multithreaded fragment downloads**: Fragment downloads can be natively multi-threaded. Use `--concurrent-fragments` (`-N`) option to set the number of threads used + * **Aria2c with HLS/DASH**: You can use aria2c as the external downloader for DASH(mpd) and HLS(m3u8) formats. No more slow ffmpeg/native downloads -* **New extractors**: AnimeLab, Philo MSO, Rcs, Gedi, bitwave.tv, mildom, audius, zee5 +* **New extractors**: AnimeLab, Philo MSO, Rcs, Gedi, bitwave.tv, mildom, audius, zee5, mtv.it, wimtv, pluto.tv * **Fixed extractors**: archive.org, roosterteeth.com, skyit, instagram, itv, SouthparkDe, spreaker, Vlive, tiktok, akamai, ina, rumble, tennistv * **Plugin support**: Extractors can be loaded from an external file. See [plugins](#plugins) for details -* **Multiple paths and output templates**: You can give different [output templates](#output-template) and download paths for different types of files. You can also set a temporary path where intermediary files are downloaded to. See [`--paths`](https://github.com/yt-dlp/yt-dlp/#:~:text=-P,%20--paths%20TYPE:PATH) for details - - +* **Multiple paths and output templates**: You can give different [output templates](#output-template) and download paths for different types of files. You can also set a temporary path where intermediary files are downloaded to using `--paths` (`-P`) * **Portable Configuration**: Configuration files are automatically loaded from the home and root directories. See [configuration](#configuration) for details @@ -194,7 +196,7 @@ Then simply run `make`. You can also run `make yt-dlp` instead to compile only t only list them --no-flat-playlist Extract the videos of a playlist --mark-watched Mark videos watched (YouTube only) - --no-mark-watched Do not mark videos watched + --no-mark-watched Do not mark videos watched (default) --no-colors Do not emit color codes in output ## Network Options: @@ -643,11 +645,12 @@ Then simply run `make`. You can also run `make yt-dlp` instead to compile only t arguments to the specified executable only when being used by the specified postprocessor. Additionally, for - ffmpeg/ffprobe, a number can be appended to - the exe name seperated by "_i" to pass the - argument before the specified input file. - Eg: --ppa "Merger+ffmpeg_i1:-v quiet". You - can use this option multiple times to give + ffmpeg/ffprobe, "_i"/"_o" can be appended + to the prefix optionally followed by a + number to pass the argument before the + specified input/output file. Eg: --ppa + "Merger+ffmpeg_i1:-v quiet". You can use + this option multiple times to give different arguments to different postprocessors. (Alias: --ppa) -k, --keep-video Keep the intermediate video file on disk @@ -815,7 +818,7 @@ The `-o` option is used to indicate a template for the output file names while ` **tl;dr:** [navigate me to examples](#output-template-examples). -The basic usage of `-o` is not to set any template arguments when downloading a single file, like in `yt-dlp -o funny_video.flv "https://some/video"`. However, it may contain special sequences that will be replaced when downloading each video. The special sequences may be formatted according to [python string formatting operations](https://docs.python.org/2/library/stdtypes.html#string-formatting). For example, `%(NAME)s` or `%(NAME)05d`. To clarify, that is a percent symbol followed by a name in parentheses, followed by formatting operations. Date/time fields can also be formatted according to [strftime formatting](https://docs.python.org/3/library/datetime.html#strftime-and-strptime-format-codes) by specifying it inside the parantheses seperated from the field name using a `>`. For example, `%(duration>%H-%M-%S)s`. +The basic usage of `-o` is not to set any template arguments when downloading a single file, like in `yt-dlp -o funny_video.flv "https://some/video"` (hard-coding file extension like this is not recommended). However, it may contain special sequences that will be replaced when downloading each video. The special sequences may be formatted according to [python string formatting operations](https://docs.python.org/2/library/stdtypes.html#string-formatting). For example, `%(NAME)s` or `%(NAME)05d`. To clarify, that is a percent symbol followed by a name in parentheses, followed by formatting operations. Date/time fields can also be formatted according to [strftime formatting](https://docs.python.org/3/library/datetime.html#strftime-and-strptime-format-codes) by specifying it inside the parantheses seperated from the field name using a `>`. For example, `%(duration>%H-%M-%S)s`. Additionally, you can set different output templates for the various metadata files seperately from the general output template by specifying the type of file followed by the template seperated by a colon ":". The different filetypes supported are `subtitle`, `thumbnail`, `description`, `annotation`, `infojson`, `pl_description`, `pl_infojson`, `chapter`. For example, `-o '%(title)s.%(ext)s' -o 'thumbnail:%(title)s\%(title)s.%(ext)s'` will put the thumbnails in a folder with the same name as the video. @@ -826,6 +829,7 @@ The available fields are: - `url` (string): Video URL - `ext` (string): Video filename extension - `alt_title` (string): A secondary title of the video + - `description` (string): The description of the video - `display_id` (string): An alternative identifier for the video - `uploader` (string): Full name of the video uploader - `license` (string): License name the video is licensed under diff --git a/supportedsites.md b/supportedsites.md index 7c6273792..cf963a79f 100644 --- a/supportedsites.md +++ b/supportedsites.md @@ -561,6 +561,8 @@ - **mtg**: MTG services - **mtv** - **mtv.de** + - **mtv.it** + - **mtv.it:programma** - **mtv:video** - **mtvjapan** - **mtvservices:embedded** @@ -734,6 +736,7 @@ - **Playwire** - **pluralsight** - **pluralsight:course** + - **PlutoTV** - **podomatic** - **Pokemon** - **PokemonWatch** @@ -1171,6 +1174,7 @@ - **Weibo** - **WeiboMobile** - **WeiqiTV**: WQTV + - **WimTV** - **Wistia** - **WistiaPlaylist** - **wnl**: npo.nl, ntr.nl, omroepwnl.nl, zapp.nl and npo3.nl @@ -1241,6 +1245,7 @@ - **ZDF** - **ZDFChannel** - **Zee5** + - **zee5:series** - **Zhihu** - **zingmp3**: mp3.zing.vn - **zoom** diff --git a/yt_dlp/options.py b/yt_dlp/options.py index 99b7db184..e7bf9d564 100644 --- a/yt_dlp/options.py +++ b/yt_dlp/options.py @@ -214,12 +214,11 @@ def parseOpts(overrideArguments=None): help='Mark videos watched (YouTube only)') general.add_option( '--no-mark-watched', - action='store_false', dest='mark_watched', default=False, - help='Do not mark videos watched') + action='store_false', dest='mark_watched', + help='Do not mark videos watched (default)') general.add_option( '--no-colors', - action='store_true', dest='no_color', - default=False, + action='store_true', dest='no_color', default=False, help='Do not emit color codes in output') network = optparse.OptionGroup(parser, 'Network Options') @@ -1091,8 +1090,8 @@ def parseOpts(overrideArguments=None): 'The supported executables are: SponSkrub, FFmpeg, FFprobe, and AtomicParsley. ' 'You can also specify "PP+EXE:ARGS" to give the arguments to the specified executable ' 'only when being used by the specified postprocessor. Additionally, for ffmpeg/ffprobe, ' - 'a number can be appended to the exe name seperated by "_i" to pass the argument ' - 'before the specified input file. Eg: --ppa "Merger+ffmpeg_i1:-v quiet". ' + '"_i"/"_o" can be appended to the prefix optionally followed by a number to pass the argument ' + 'before the specified input/output file. Eg: --ppa "Merger+ffmpeg_i1:-v quiet". ' 'You can use this option multiple times to give different arguments to different ' 'postprocessors. (Alias: --ppa)')) postproc.add_option(