aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorpukkandan <pukkandan.ytdlp@gmail.com>2021-05-11 14:25:31 +0530
committerpukkandan <pukkandan.ytdlp@gmail.com>2021-05-11 14:25:31 +0530
commit41712218233ae144d55f841818df9c63d2bd23d3 (patch)
treeda46e9f4b85125c57a8daf949161dd50c5ad1bb5
parenteaeca38fc4790257cc16fc77f1d06d89156a5b2c (diff)
downloadhypervideo-pre-41712218233ae144d55f841818df9c63d2bd23d3.tar.lz
hypervideo-pre-41712218233ae144d55f841818df9c63d2bd23d3.tar.xz
hypervideo-pre-41712218233ae144d55f841818df9c63d2bd23d3.zip
Add compat-option `no-attach-infojson`
-rw-r--r--README.md1
-rw-r--r--yt_dlp/YoutubeDL.py2
-rw-r--r--yt_dlp/__init__.py2
-rw-r--r--yt_dlp/postprocessor/ffmpeg.py3
4 files changed, 5 insertions, 3 deletions
diff --git a/README.md b/README.md
index 207f29493..c8936027f 100644
--- a/README.md
+++ b/README.md
@@ -122,6 +122,7 @@ Some of yt-dlp's default options are different from that of youtube-dl and youtu
1. Unlike youtube-dlc, yt-dlp does not allow merging multiple audio/video streams into one file by default (since this conflicts with the use of `-f bv*+ba`). If needed, this feature must be enabled using `--audio-multistreams` and `--video-multistreams`. You can also use `--compat-options multistreams` to enable both
1. `--ignore-errors` is enabled by default. Use `--abort-on-error` or `--compat-options abort-on-error` to abort on errors instead
1. When writing metadata files such as thumbnails, description or infojson, the same information (if available) is also written for playlists. Use `--no-write-playlist-metafiles` or `--compat-options no-playlist-metafiles` to not write these files
+1. `--add-metadata` attaches the `infojson` to `mkv` files in addition to writing the metadata when used with `--write-infojson`. Use `--compat-options no-attach-info-json` to revert this
1. `playlist_index` behaves differently when used with options like `--playlist-reverse` and `--playlist-items`. See [#302](https://github.com/yt-dlp/yt-dlp/issues/302) for details. You can use `--compat-options playlist-index` if you want to keep the earlier behavior
1. The output of `-F` is listed in a new format. Use `--compat-options list-formats` to revert this
1. Youtube live chat (if available) is considered as a subtitle. Use `--sub-langs all,-live_chat` to download all subtitles except live chat. You can also use `--compat-options no-live-chat` to prevent live chat from downloading
diff --git a/yt_dlp/YoutubeDL.py b/yt_dlp/YoutubeDL.py
index 3cf86cee7..c51be22cb 100644
--- a/yt_dlp/YoutubeDL.py
+++ b/yt_dlp/YoutubeDL.py
@@ -386,7 +386,7 @@ class YoutubeDL(object):
if True, otherwise use ffmpeg/avconv if False, otherwise
use downloader suggested by extractor if None.
compat_opts: Compatibility options. See "Differences in default behavior".
- Note that only format-sort, format-spec, no-live-chat,
+ Note that only format-sort, format-spec, no-live-chat, no-attach-infojson
playlist-index, list-formats, no-youtube-channel-redirect
and no-youtube-unavailable-videos works when used via the API
diff --git a/yt_dlp/__init__.py b/yt_dlp/__init__.py
index 356772b1d..f1bdc1b76 100644
--- a/yt_dlp/__init__.py
+++ b/yt_dlp/__init__.py
@@ -260,7 +260,7 @@ def _real_main(argv=None):
all_compat_opts = [
'filename', 'format-sort', 'abort-on-error', 'format-spec', 'multistreams',
'no-playlist-metafiles', 'no-live-chat', 'playlist-index', 'list-formats',
- 'no-youtube-channel-redirect', 'no-youtube-unavailable-videos',
+ 'no-youtube-channel-redirect', 'no-youtube-unavailable-videos', 'no-attach-info-json',
]
compat_opts = parse_compat_opts()
diff --git a/yt_dlp/postprocessor/ffmpeg.py b/yt_dlp/postprocessor/ffmpeg.py
index 0e160f5dc..78a80f3f8 100644
--- a/yt_dlp/postprocessor/ffmpeg.py
+++ b/yt_dlp/postprocessor/ffmpeg.py
@@ -605,7 +605,8 @@ class FFmpegMetadataPP(FFmpegPostProcessor):
in_filenames.append(metadata_filename)
options.extend(['-map_metadata', '1'])
- if '__infojson_filename' in info and info['ext'] in ('mkv', 'mka'):
+ if ('no-attach-info-json' not in self.get_param('compat_opts', [])
+ and '__infojson_filename' in info and info['ext'] in ('mkv', 'mka')):
old_stream, new_stream = self.get_stream_number(
filename, ('tags', 'mimetype'), 'application/json')
if old_stream is not None: