]> jfr.im git - yt-dlp.git/blobdiff - README.md
Documentation fixes
[yt-dlp.git] / README.md
index 8a7e1b6db0ef3f291a2b5f4887db0ce233eae7e7..1a5dd3f6aedb0aa74f20d42a9012671faa67461f 100644 (file)
--- a/README.md
+++ b/README.md
@@ -1,16 +1,19 @@
-[![Build Status](https://github.com/pukkandan/yt-dlc/workflows/CI/badge.svg)](https://github.com/pukkandan/yt-dlc/actions?query=workflow%3ACI)
-[![Release Version](https://img.shields.io/badge/Release-2021.01.07-brightgreen)](https://github.com/pukkandan/yt-dlc/releases/latest)
-[![License: Unlicense](https://img.shields.io/badge/License-Unlicense-blue.svg)](https://github.com/pukkandan/yt-dlc/blob/master/LICENSE)
+# YT-DLP
 
-youtube-dlc - download videos from youtube.com and many other [video platforms](docs/supportedsites.md)
+<!-- See: https://github.com/marketplace/actions/dynamic-badges -->
+[![Release Version](https://img.shields.io/endpoint?url=https://gist.githubusercontent.com/pukkandan/c69cb23c3c5b3316248e52022790aa57/raw/version.json&color=brightgreen)](https://github.com/pukkandan/yt-dlp/releases/latest)
+[![License: Unlicense](https://img.shields.io/badge/License-Unlicense-blue.svg)](https://github.com/pukkandan/yt-dlp/blob/master/LICENSE)
+[![Core Status](https://github.com/pukkandan/yt-dlp/workflows/Core%20Test/badge.svg?branch=master)](https://github.com/pukkandan/yt-dlp/actions?query=workflow%3ACore)
+[![CI Status](https://github.com/pukkandan/yt-dlp/workflows/Full%20Test/badge.svg?branch=master)](https://github.com/pukkandan/yt-dlp/actions?query=workflow%3AFull)
+
+A command-line program to download videos from youtube.com and many other [video platforms](docs/supportedsites.md)
 
 This is a fork of [youtube-dlc](https://github.com/blackjack4494/yt-dlc) which is inturn a fork of [youtube-dl](https://github.com/ytdl-org/youtube-dl)
 
-* [CHANGES FROM YOUTUBE-DLC](#changes)
+* [NEW FEATURES](#new-features)
 * [INSTALLATION](#installation)
-    * [UPDATE](#update)
-    * [COMPILE](#compile)
-* [YOUTUBE-DLC](#youtube-dlc)
+    * [Update](#update)
+    * [Compile](#compile)
 * [DESCRIPTION](#description)
 * [OPTIONS](#options)
     * [Network Options](#network-options)
 * [MORE](#more)
 
 
-# CHANGES
-See [commits](https://github.com/pukkandan/yt-dlc/commits) for more details
-
-### 2021.01.05
-* **Format Sort:** Added `--format-sort` (`-S`), `--format-sort-force` (`--S-force`) - See [Sorting Formats](#sorting-formats) for details
-* **Format Selection:** See [Format Selection](#format-selection) for details
-    * New format selectors: `best*`, `worst*`, `bestvideo*`, `bestaudio*`, `worstvideo*`, `worstaudio*`
-    * Changed video format sorting to show video only files and video+audio files together.
-    * Added `--video-multistreams`, `--no-video-multistreams`, `--audio-multistreams`, `--no-audio-multistreams`
-    * Added `b`,`w`,`v`,`a` as alias for `best`, `worst`, `video` and `audio` respectively
-* **Shortcut Options:** Added `--write-link`, `--write-url-link`, `--write-webloc-link`, `--write-desktop-link` by @h-h-h-h - See [Internet Shortcut Options](#internet-shortcut-options) for details
-* **Sponskrub integration:** Added `--sponskrub`, `--sponskrub-cut`, `--sponskrub-force`, `--sponskrub-location`, `--sponskrub-args` - See [SponSkrub Options](#sponskrub-options-sponsorblock) for details
-* Added `--force-download-archive` (`--force-write-archive`) by by h-h-h-h
-* Added `--list-formats-as-table`,  `--list-formats-old`
-* **Negative Options:** Makes it possible to negate boolean options by adding a `no-` to the switch
-    * Added `--no-ignore-dynamic-mpd`, `--no-allow-dynamic-mpd`, `--allow-dynamic-mpd`, `--youtube-include-hls-manifest`, `--no-youtube-include-hls-manifest`, `--no-youtube-skip-hls-manifest`, `--no-download`, `--no-download-archive`, `--resize-buffer`, `--part`, `--mtime`, `--no-keep-fragments`, `--no-cookies`, `--no-write-annotations`, `--no-write-info-json`, `--no-write-description`, `--no-write-thumbnail`, `--youtube-include-dash-manifest`, `--post-overwrites`, `--no-keep-video`, `--no-embed-subs`, `--no-embed-thumbnail`, `--no-add-metadata`, `--no-include-ads`, `--no-write-sub`, `--no-write-auto-sub`, `--no-playlist-reverse`, `--no-restrict-filenames`, `--youtube-include-dash-manifest`, `--no-format-sort-force`, `--flat-videos`, `--no-list-formats-as-table`, `--no-sponskrub`, `--no-sponskrub-cut`, `--no-sponskrub-force`
-    * Renamed: `--write-subs`, --no-write-subs`, `--no-write-auto-subs, `--write-auto-subs`. Note that these can still be used without the ending "s"
-* Relaxed validation for format filters so that any arbitrary field can be used
-* Fix for embedding thumbnail in mp3 by @pauldubois98
-* Make Twitch Video ID output from Playlist and VOD extractor same. This is only a temporary fix
-* **Merge youtube-dl:** Upto [2020.01.03](https://github.com/ytdl-org/youtube-dl/commit/8e953dcbb10a1a42f4e12e4e132657cb0100a1f8) - See [blackjack4494/yt-dlc#280](https://github.com/blackjack4494/yt-dlc/pull/280) for details
-* Cleaned up the fork for public use
-
-### 2021.01.05-2
-* **Changed defaults:**
-    * Enabled `--ignore`
-    * Disabled `--video-multistreams` and `--audio-multistreams`
-    * Changed default format selection to `bv*+ba/b` when `--audio-multistreams` is disabled
-    * Changed default format sort order to `res,fps,codec,size,br,asr,proto,ext,has_audio,source,format_id`
-    * Changed `webm` to be more preferable than `flv` in format sorting
-    * Changed default output template to `%(title)s [%(id)s].%(ext)s`
-    * Enabled `--list-formats-as-table`
-
-### 2021.01.07
-* Removed priority of `av01` codec in `-S` since most devices don't support it yet
-* Added `duration_string` to be used in `--output`
-* Created First Release
+# NEW FEATURES
+The major new features from the latest release of [blackjack4494/yt-dlc](https://github.com/blackjack4494/yt-dlc) are:
+
+* **[SponSkrub Integration](#sponSkrub-options-sponsorblock)**: You can use [SponSkrub](https://github.com/pukkandan/SponSkrub) to mark/remove sponsor sections in youtube videos by utilizing the [SponsorBlock](https://sponsor.ajay.app) API
+
+* **[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.01.08**: 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)
+
+* **Youtube improvements**:
+    * All Youtube Feeds (`:ytfav`, `:ytwatchlater`, `:ytsubs`, `:ythistory`, `:ytrec`) works correctly and support downloading multiple pages of content
+    * Youtube search works correctly (`ytsearch:`, `ytsearchdate:`) along with Search URLs
+    * Redirect channel's home URL automatically to `/video` to preserve the old behaviour
+
+* **New extractors**: AnimeLab, Philo MSO, Rcs, Gedi, bitwave.tv
+
+* **Fixed extractors**: archive.org, roosterteeth.com, skyit, instagram, itv, SouthparkDe, spreaker, Vlive, tiktok, akamai, ina
+
+* **New options**: `--list-formats-as-table`, `--write-link`, `--force-download-archive`, `--force-overwrites` etc
+
+and many other features and patches. See [changelog](Changelog.md) or [commits](https://github.com/pukkandan/yt-dlp/commits) for the full list of changes
+
+
+**PS**: Some of these changes are already in youtube-dlc, but are still unreleased. See [this](Changelog.md#unreleased-changes-in-blackjack4494yt-dlc) for details
+
+If you are coming from [youtube-dl](https://github.com/ytdl-org/youtube-dl), the amount of changes are very large. Compare [options](#options) and [supported sites](docs/supportedsites.md) with youtube-dl's to get an idea of the massive number of features/patches [youtube-dlc](https://github.com/blackjack4494/yt-dlc) has accumulated.
+
 
 # INSTALLATION
 
-To use the latest version, simply download and run the [latest release](https://github.com/pukkandan/yt-dlc/releases/latest).
+To use the latest version, simply download and run the [latest release](https://github.com/pukkandan/yt-dlp/releases/latest).
 Currently, there is no support for any package managers.
 
 If you want to install the current master branch
 
-    python -m pip install git+https://github.com/pukkandan/yt-dlc
+    python -m pip install git+https://github.com/pukkandan/yt-dlp
 
 ### UPDATE
 **DO NOT UPDATE using `-U` !** instead download binaries again
@@ -115,9 +108,9 @@ ### COMPILE
 
 
 # DESCRIPTION
-**youtube-dlc** is a command-line program to download videos from YouTube.com and a few more sites. It requires the Python interpreter, version 2.6, 2.7, or 3.2+, and it is not platform specific. It should work on your Unix box, on Windows or on macOS. It is released to the public domain, which means you can modify it, redistribute it or use it however you like.
+**youtube-dlc** is a command-line program to download videos from youtube.com many other [video platforms](docs/supportedsites.md). It requires the Python interpreter, version 2.6, 2.7, or 3.2+, and it is not platform specific. It should work on your Unix box, on Windows or on macOS. It is released to the public domain, which means you can modify it, redistribute it or use it however you like.
 
-    youtube-dlc [OPTIONS] URL [URL...]
+    youtube-dlc [OPTIONS] [--] URL [URL...]
 
 
 # OPTIONS
@@ -257,8 +250,10 @@ ## Video Selection:
     --download-archive FILE          Download only videos not listed in the
                                      archive file. Record the IDs of all
                                      downloaded videos in it.
-    --break-on-existing              Stop the download process after attempting
-                                     to download a file that's in the archive.
+    --break-on-existing              Stop the download process when encountering
+                                     a file that's in the archive.
+    --break-on-reject                Stop the download process when encountering
+                                     a file that has been filtered out.
     --no-download-archive            Do not use archive file (default)
     --include-ads                    Download advertisements as well
                                      (experimental)
@@ -326,7 +321,11 @@ ## Filesystem Options:
                                      filenames
     --no-restrict-filenames          Allow Unicode characters, "&" and spaces in
                                      filenames (default)
-    -w, --no-overwrites              Do not overwrite files
+    -w, --no-overwrites              Do not overwrite any files
+    --force-overwrites               Overwrite all video and metadata files.
+                                     This option includes --no-continue
+    --no-force-overwrites            Do not overwrite the video, but overwrite
+                                     related files (default)
     -c, --continue                   Resume partially downloaded files (default)
     --no-continue                    Restart download of partially downloaded
                                      files from beginning
@@ -419,7 +418,8 @@ ## Verbosity / Simulation Options:
                                      files in the current directory to debug
                                      problems
     --print-traffic                  Display sent and read HTTP traffic
-    -C, --call-home                  Contact the youtube-dlc server for debugging
+    -C, --call-home                  [Broken] Contact the youtube-dlc server for
+                                     debugging
     --no-call-home                   Do not contact the youtube-dlc server for
                                      debugging (default)
 
@@ -470,8 +470,8 @@ ## Video Format Options:
     --no-audio-multistreams          Only one audio stream is downloaded for
                                      each output file (default)
     --all-formats                    Download all available video formats
-    --prefer-free-formats            Prefer free video formats unless a specific
-                                     one is requested
+    --prefer-free-formats            Prefer free video formats over non-free
+                                     formats of same quality
     -F, --list-formats               List all available formats of requested
                                      videos
     --list-formats-as-table          Present the output of -F in a more tabular
@@ -550,7 +550,19 @@ ## Post-Processing Options:
     --recode-video FORMAT            Re-encode the video into another format if
                                      re-encoding is necessary (currently
                                      supported: mp4|flv|ogg|webm|mkv|avi)
-    --postprocessor-args ARGS        Give these arguments to the postprocessor
+    --postprocessor-args NAME:ARGS   Give these arguments to the postprocessors.
+                                     Specify the postprocessor name and the
+                                     arguments separated by a colon ':' to give
+                                     the argument to only the specified
+                                     postprocessor. Supported names are
+                                     ExtractAudio, VideoRemuxer, VideoConvertor,
+                                     EmbedSubtitle, Metadata, Merger,
+                                     FixupStretched, FixupM4a, FixupM3u8,
+                                     SubtitlesConvertor, EmbedThumbnail,
+                                     XAttrMetadata, SponSkrub and Default. You
+                                     can use this option multiple times to give
+                                     different arguments to different
+                                     postprocessors
     -k, --keep-video                 Keep the intermediate video file on disk
                                      after post-processing
     --no-keep-video                  Delete the intermediate video file after
@@ -596,7 +608,7 @@ ## Post-Processing Options:
     --convert-subs FORMAT            Convert the subtitles to other format
                                      (currently supported: srt|ass|vtt|lrc)
 
-## [SponSkrub](https://github.com/faissaloo/SponSkrub) Options ([SponsorBlock](https://sponsor.ajay.app)):
+## [SponSkrub](https://github.com/pukkandan/SponSkrub) Options ([SponsorBlock](https://sponsor.ajay.app)):
     --sponskrub                      Use sponskrub to mark sponsored sections
                                      with the data available in SponsorBlock
                                      API. This is enabled by default if the
@@ -613,7 +625,6 @@ ## [SponSkrub](https://github.com/faissaloo/SponSkrub) Options ([SponsorBlock](h
     --sponskrub-location PATH        Location of the sponskrub binary; either
                                      the path to the binary or its containing
                                      directory.
-    --sponskrub-args None            Give these arguments to sponskrub
 
 ## Extractor Options:
     --ignore-dynamic-mpd             Do not process dynamic DASH manifests
@@ -932,9 +943,17 @@ # and if it doesn't already have an audio stream, merge it with best audio-only
 # Same as above
 $ youtube-dlc
 
+# Download the best video-only format and the best audio-only format without merging them
+# For this case, an output template should be used since
+# by default, bestvideo and bestaudio will have the same file name.
+$ youtube-dlc -f 'bv,ba' -o '%(title)s.f%(format_id)s.%(ext)s'
 
 
-# Download the worst video available
+
+# The following examples show the old method (without -S) of format selection
+# and how to use -S to achieve a similar but better result
+
+# Download the worst video available (old method)
 $ youtube-dlc -f 'wv*+wa/w'
 
 # Download the best video available but with the smallest resolution
@@ -993,13 +1012,6 @@ # (https/ftps > http/ftp > m3u8_native > m3u8 > http_dash_segments ...)
 
 
 
-# Download the best video-only format and the best audio-only format without merging them
-# For this case, an output template should be used since
-# by default, bestvideo and bestaudio will have the same file name.
-$ youtube-dlc -f 'bv,ba' -o '%(title)s.f%(format_id)s.%(ext)s'
-
-
-
 # Download the best video with h264 codec, or the best video if there is no such video
 $ youtube-dlc -f '(bv*+ba/b)[vcodec^=avc1] / (bv*+ba/b)'