From 41712218233ae144d55f841818df9c63d2bd23d3 Mon Sep 17 00:00:00 2001 From: pukkandan Date: Tue, 11 May 2021 14:25:31 +0530 Subject: [PATCH] Add compat-option `no-attach-infojson` --- README.md | 1 + yt_dlp/YoutubeDL.py | 2 +- yt_dlp/__init__.py | 2 +- yt_dlp/postprocessor/ffmpeg.py | 3 ++- 4 files changed, 5 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 207f294938..c8936027f3 100644 --- a/README.md +++ b/README.md @@ -122,6 +122,7 @@ ### Differences in default behavior 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 3cf86cee74..c51be22cb4 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 356772b1da..f1bdc1b763 100644 --- a/yt_dlp/__init__.py +++ b/yt_dlp/__init__.py @@ -260,7 +260,7 @@ def parse_compat_opts(): 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 0e160f5dcd..78a80f3f86 100644 --- a/yt_dlp/postprocessor/ffmpeg.py +++ b/yt_dlp/postprocessor/ffmpeg.py @@ -605,7 +605,8 @@ def ffmpeg_escape(text): 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: