mirror of https://github.com/yt-dlp/yt-dlp.git
parent
61241abbb0
commit
fac988053f
|
@ -40,3 +40,7 @@ hheimbuerger
|
||||||
B0pol
|
B0pol
|
||||||
lkho
|
lkho
|
||||||
fstirlitz
|
fstirlitz
|
||||||
|
Lamieur
|
||||||
|
tsukumijima
|
||||||
|
Hadi0609
|
||||||
|
b5eff52
|
||||||
|
|
55
Changelog.md
55
Changelog.md
|
@ -19,6 +19,61 @@
|
||||||
-->
|
-->
|
||||||
|
|
||||||
|
|
||||||
|
### 2021.05.11
|
||||||
|
|
||||||
|
* **Deprecate support for python versions < 3.6**
|
||||||
|
* **Subtitle extraction from manifests** by [fstirlitz](https://github.com/fstirlitz). See [be6202f12b97858b9d716e608394b51065d0419f](https://github.com/yt-dlp/yt-dlp/commit/be6202f12b97858b9d716e608394b51065d0419f) for details
|
||||||
|
* **Improve output template:**
|
||||||
|
* Allow slicing lists/strings using `field.start:end:step`
|
||||||
|
* A field can also be used as offset like `field1+num+field2`
|
||||||
|
* A default value can be given using `field|default`
|
||||||
|
* Prevent invalid fields from causing errors
|
||||||
|
* Merge youtube-dl: Upto [commit/a726009](https://github.com/ytdl-org/youtube-dl/commit/a7260099873acc6dc7d76cafad2f6b139087afd0)
|
||||||
|
* **Remove options** `-l`, `-t`, `-A` completely and disable `--auto-number`, `--title`, `--literal`, `--id`
|
||||||
|
* [Plugins] Prioritize plugins over standard extractors and prevent plugins from overwriting the standard extractor classes
|
||||||
|
* [downloader] Fix `quiet` and `to_stderr`
|
||||||
|
* [fragment] Ensure the file is closed on error
|
||||||
|
* [fragment] Make sure first segment is not skipped
|
||||||
|
* [aria2c] Fix whitespace being stripped off
|
||||||
|
* [embedthumbnail] Fix bug where jpeg thumbnails were converted again
|
||||||
|
* [FormatSort] Fix for when some formats have quality and others don't
|
||||||
|
* [utils] Add `network_exceptions`
|
||||||
|
* [utils] Escape URL while sanitizing
|
||||||
|
* [ukcolumn] Add Extractor
|
||||||
|
* [whowatch] Add extractor by [nao20010128nao](https://github.com/nao20010128nao)
|
||||||
|
* [CBS] Improve `_VALID_URL` to support movies
|
||||||
|
* [crackle] Improve extraction
|
||||||
|
* [curiositystream] Fix collections
|
||||||
|
* [francetvinfo] Improve video id extraction
|
||||||
|
* [generic] Respect the encoding in manifest
|
||||||
|
* [limelight] Obey `allow_unplayable_formats`
|
||||||
|
* [mediasite] Generalize URL pattern by [fstirlitz](https://github.com/fstirlitz)
|
||||||
|
* [mxplayer] Add MxplayerShowIE by [Ashish0804](https://github.com/Ashish0804)
|
||||||
|
* [nebula] Move to nebula.app by [Lamieur](https://github.com/Lamieur)
|
||||||
|
* [niconico] Fix HLS formats by [CXwudi](https://github.com/CXwudi), [tsukumijima](https://github.com/tsukumijima), [nao20010128nao](https://github.com/nao20010128nao) and [pukkandan](https://github.com/pukkandan)
|
||||||
|
* [niconico] Fix title and thumbnail extraction by [CXwudi](https://github.com/CXwudi)
|
||||||
|
* [plutotv] Extract subtitles from manifests
|
||||||
|
* [plutotv] Fix format extraction for some urls
|
||||||
|
* [rmcdecouverte] Improve `_VALID_URL`
|
||||||
|
* [sonyliv] Fix `title` and `series` extraction by [Ashish0804](https://github.com/Ashish0804)
|
||||||
|
* [tubi] Raise "no video formats" error when video url is empty
|
||||||
|
* [youtube:tab] Detect playlists inside community posts
|
||||||
|
* [youtube] Add `oembed` to reserved names
|
||||||
|
* [zee5] Fix extraction for some URLs by [Hadi0609](https://github.com/Hadi0609)
|
||||||
|
* [zee5] Fix py2 compatibility
|
||||||
|
* Fix `playlist_index` and add `playlist_autonumber`. See [#302](https://github.com/yt-dlp/yt-dlp/issues/302) for details
|
||||||
|
* Add experimental option `--check-formats` to test the URLs before format selection
|
||||||
|
* Option `--compat-options` to revert some of yt-dlp's changes
|
||||||
|
* Deprecates `--list-formats-as-table`, `--list-formats-old`
|
||||||
|
* Fix number of digits in `%(playlist_index)s`
|
||||||
|
* Fix case sensitivity of format selector
|
||||||
|
* Revert "[core] be able to hand over id and title using url_result"
|
||||||
|
* Do not strip out whitespaces in `-o` and `-P`
|
||||||
|
* Fix `preload_download_archive` writing verbose message to `stdout`
|
||||||
|
* Move option warnings to `YoutubeDL`so that they obey `--no-warnings` and can output colors
|
||||||
|
* Py2 compatibility for `FileNotFoundError`
|
||||||
|
|
||||||
|
|
||||||
### 2021.04.22
|
### 2021.04.22
|
||||||
* **Improve output template:**
|
* **Improve output template:**
|
||||||
* Objects can be traversed like `%(field.key1.key2)s`
|
* Objects can be traversed like `%(field.key1.key2)s`
|
||||||
|
|
22
README.md
22
README.md
|
@ -66,9 +66,9 @@ 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))
|
* **[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.04.17**: 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 [commit/a726009](https://github.com/ytdl-org/youtube-dl/commit/a7260099873acc6dc7d76cafad2f6b139087afd0)**: (v2021.04.26) 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.
|
* **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.
|
||||||
|
|
||||||
* **Youtube improvements**:
|
* **Youtube improvements**:
|
||||||
* All Youtube Feeds (`:ytfav`, `:ytwatchlater`, `:ytsubs`, `:ythistory`, `:ytrec`) works and supports downloading multiple pages of content
|
* All Youtube Feeds (`:ytfav`, `:ytwatchlater`, `:ytsubs`, `:ythistory`, `:ytrec`) works and supports downloading multiple pages of content
|
||||||
|
@ -82,17 +82,21 @@ The major new features from the latest release of [blackjack4494/yt-dlc](https:/
|
||||||
|
|
||||||
* **Aria2c with HLS/DASH**: You can use `aria2c` as the external downloader for DASH(mpd) and HLS(m3u8) formats
|
* **Aria2c with HLS/DASH**: You can use `aria2c` as the external downloader for DASH(mpd) and HLS(m3u8) formats
|
||||||
|
|
||||||
* **New extractors**: AnimeLab, Philo MSO, Rcs, Gedi, bitwave.tv, mildom, audius, zee5, mtv.it, wimtv, pluto.tv, niconico users, discoveryplus.in, mediathek, NFHSNetwork, nebula
|
* **New extractors**: AnimeLab, Philo MSO, Rcs, Gedi, bitwave.tv, mildom, audius, zee5, mtv.it, wimtv, pluto.tv, niconico users, discoveryplus.in, mediathek, NFHSNetwork, nebula, ukcolumn, whowatch, MxplayerShow
|
||||||
|
|
||||||
* **Fixed extractors**: archive.org, roosterteeth.com, skyit, instagram, itv, SouthparkDe, spreaker, Vlive, akamai, ina, rumble, tennistv, amcnetworks, la7 podcasts, linuxacadamy, nitter, twitcasting, viu
|
* **Fixed extractors**: archive.org, roosterteeth.com, skyit, instagram, itv, SouthparkDe, spreaker, Vlive, akamai, ina, rumble, tennistv, amcnetworks, la7 podcasts, linuxacadamy, nitter, twitcasting, viu, crackle, curiositystream, mediasite, rmcdecouverte, sonyliv, tubi
|
||||||
|
|
||||||
|
* **Subtitle extraction from manifests**: Subtitles can be extracted from streaming media manifests. See [be6202f12b97858b9d716e608394b51065d0419f](https://github.com/yt-dlp/yt-dlp/commit/be6202f12b97858b9d716e608394b51065d0419f) 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`)
|
* **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
|
* **Portable Configuration**: Configuration files are automatically loaded from the home and root directories. See [configuration](#configuration) for details
|
||||||
|
|
||||||
* **Other new options**: `--parse-metadata`, `--list-formats-as-table`, `--write-link`, `--force-download-archive`, `--force-overwrites`, `--break-on-reject` etc
|
* **Output template improvements**: Output templates can now have date-time formatting, numeric offsets, object traversal etc. See [output template](#output-template) for details. Even more advanced operations can also be done with the help of `--parse-metadata`
|
||||||
|
|
||||||
* **Improvements**: Multiple `--postprocessor-args` and `--external-downloader-args`, Date/time formatting in `-o`, faster archive checking, more [format selection options](#format-selection) etc
|
* **Other new options**: `--sleep-requests`, `--convert-thumbnails`, `--write-link`, `--force-download-archive`, `--force-overwrites`, `--break-on-reject` etc
|
||||||
|
|
||||||
|
* **Improvements**: Multiple `--postprocessor-args` and `--downloader-args`, faster archive checking, more [format selection options](#format-selection) etc
|
||||||
|
|
||||||
* **Plugin extractors**: Extractors can be loaded from an external file. See [plugins](#plugins) for details
|
* **Plugin extractors**: Extractors can be loaded from an external file. See [plugins](#plugins) for details
|
||||||
|
|
||||||
|
@ -161,7 +165,9 @@ sudo chmod a+rx /usr/local/bin/yt-dlp
|
||||||
### DEPENDENCIES
|
### DEPENDENCIES
|
||||||
Python versions 3.6+ (CPython and PyPy) are officially supported. Other versions and implementations may or maynot work correctly.
|
Python versions 3.6+ (CPython and PyPy) are officially supported. Other versions and implementations may or maynot work correctly.
|
||||||
|
|
||||||
Although there are no required dependencies, `ffmpeg` and `ffprobe` are highly recommended. Other optional dependencies are `sponskrub`, `AtomicParsley`, `mutagen`, `pycryptodome` and any of the supported external downloaders. Note that the windows releases are already built with the python interpreter, mutagen and pycryptodome included.
|
On windows, [Microsoft Visual C++ 2010 Redistributable Package (x86)](https://www.microsoft.com/en-us/download/details.aspx?id=26999) is also necessary to run yt-dlp. You probably already have this, but if the executable throws an error due to missing `MSVCR100.dll` you need to install it.
|
||||||
|
|
||||||
|
Although there are no other required dependencies, `ffmpeg` and `ffprobe` are highly recommended. Other optional dependencies are `sponskrub`, `AtomicParsley`, `mutagen`, `pycryptodome` and any of the supported external downloaders. Note that the windows releases are already built with the python interpreter, mutagen and pycryptodome included.
|
||||||
|
|
||||||
### UPDATE
|
### UPDATE
|
||||||
You can use `yt-dlp -U` to update if you are using the provided release.
|
You can use `yt-dlp -U` to update if you are using the provided release.
|
||||||
|
@ -179,6 +185,8 @@ Once you have all the necessary dependencies installed, just run `py pyinst.py`.
|
||||||
You can also build the executable without any version info or metadata by using:
|
You can also build the executable without any version info or metadata by using:
|
||||||
|
|
||||||
pyinstaller.exe yt_dlp\__main__.py --onefile --name yt-dlp
|
pyinstaller.exe yt_dlp\__main__.py --onefile --name yt-dlp
|
||||||
|
|
||||||
|
Note that pyinstaller [does not support](https://github.com/pyinstaller/pyinstaller#requirements-and-tested-platforms) Python installed from the Windows store without using a virtual environment
|
||||||
|
|
||||||
**For Unix**:
|
**For Unix**:
|
||||||
You will need the required build tools: `python`, `make` (GNU), `pandoc`, `zip`, `nosetests`
|
You will need the required build tools: `python`, `make` (GNU), `pandoc`, `zip`, `nosetests`
|
||||||
|
|
|
@ -130,7 +130,6 @@
|
||||||
- **bitwave:stream**
|
- **bitwave:stream**
|
||||||
- **BleacherReport**
|
- **BleacherReport**
|
||||||
- **BleacherReportCMS**
|
- **BleacherReportCMS**
|
||||||
- **blinkx**
|
|
||||||
- **Bloomberg**
|
- **Bloomberg**
|
||||||
- **BokeCC**
|
- **BokeCC**
|
||||||
- **BongaCams**
|
- **BongaCams**
|
||||||
|
@ -225,7 +224,8 @@
|
||||||
- **Culturebox**
|
- **Culturebox**
|
||||||
- **CultureUnplugged**
|
- **CultureUnplugged**
|
||||||
- **curiositystream**
|
- **curiositystream**
|
||||||
- **curiositystream:collection**
|
- **curiositystream:collections**
|
||||||
|
- **curiositystream:series**
|
||||||
- **CWTV**
|
- **CWTV**
|
||||||
- **DagelijkseKost**: dagelijksekost.een.be
|
- **DagelijkseKost**: dagelijksekost.een.be
|
||||||
- **DailyMail**
|
- **DailyMail**
|
||||||
|
@ -584,6 +584,7 @@
|
||||||
- **Mwave**
|
- **Mwave**
|
||||||
- **MwaveMeetGreet**
|
- **MwaveMeetGreet**
|
||||||
- **Mxplayer**
|
- **Mxplayer**
|
||||||
|
- **MxplayerShow**
|
||||||
- **MyChannels**
|
- **MyChannels**
|
||||||
- **MySpace**
|
- **MySpace**
|
||||||
- **MySpace:album**
|
- **MySpace:album**
|
||||||
|
@ -1076,6 +1077,7 @@
|
||||||
- **UDNEmbed**: 聯合影音
|
- **UDNEmbed**: 聯合影音
|
||||||
- **UFCArabia**
|
- **UFCArabia**
|
||||||
- **UFCTV**
|
- **UFCTV**
|
||||||
|
- **ukcolumn**
|
||||||
- **UKTVPlay**
|
- **UKTVPlay**
|
||||||
- **umg:de**: Universal Music Deutschland
|
- **umg:de**: Universal Music Deutschland
|
||||||
- **Unistra**
|
- **Unistra**
|
||||||
|
@ -1194,6 +1196,7 @@
|
||||||
- **Weibo**
|
- **Weibo**
|
||||||
- **WeiboMobile**
|
- **WeiboMobile**
|
||||||
- **WeiqiTV**: WQTV
|
- **WeiqiTV**: WQTV
|
||||||
|
- **whowatch**
|
||||||
- **WimTV**
|
- **WimTV**
|
||||||
- **Wistia**
|
- **Wistia**
|
||||||
- **WistiaPlaylist**
|
- **WistiaPlaylist**
|
||||||
|
@ -1204,7 +1207,7 @@
|
||||||
- **WWE**
|
- **WWE**
|
||||||
- **XBef**
|
- **XBef**
|
||||||
- **XboxClips**
|
- **XboxClips**
|
||||||
- **XFileShare**: XFileShare based sites: Aparat, ClipWatching, GoUnlimited, GoVid, HolaVid, Streamty, TheVideoBee, Uqload, VidBom, vidlo, VidLocker, VidShare, VUp, XVideoSharing
|
- **XFileShare**: XFileShare based sites: Aparat, ClipWatching, GoUnlimited, GoVid, HolaVid, Streamty, TheVideoBee, Uqload, VidBom, vidlo, VidLocker, VidShare, VUp, WolfStream, XVideoSharing
|
||||||
- **XHamster**
|
- **XHamster**
|
||||||
- **XHamsterEmbed**
|
- **XHamsterEmbed**
|
||||||
- **XHamsterUser**
|
- **XHamsterUser**
|
||||||
|
|
|
@ -1596,7 +1596,7 @@ class InfoExtractor(object):
|
||||||
|
|
||||||
def print_verbose_info(self, to_screen):
|
def print_verbose_info(self, to_screen):
|
||||||
if self._sort_user:
|
if self._sort_user:
|
||||||
to_screen('[debug] Sort order given by user: %s' % ','.join(self._sort_user))
|
to_screen('[debug] Sort order given by user: %s' % ', '.join(self._sort_user))
|
||||||
if self._sort_extractor:
|
if self._sort_extractor:
|
||||||
to_screen('[debug] Sort order given by extractor: %s' % ', '.join(self._sort_extractor))
|
to_screen('[debug] Sort order given by extractor: %s' % ', '.join(self._sort_extractor))
|
||||||
to_screen('[debug] Formats sorted by: %s' % ', '.join(['%s%s%s' % (
|
to_screen('[debug] Formats sorted by: %s' % ', '.join(['%s%s%s' % (
|
||||||
|
|
Loading…
Reference in New Issue