diff --git a/.gitignore b/.gitignore index de401472f..7a2d92d7b 100644 --- a/.gitignore +++ b/.gitignore @@ -8,6 +8,7 @@ dist/ zip/ tmp/ venv/ +completions/ # Misc *~ @@ -34,8 +35,9 @@ README.txt *.spec # Binary -youtube-dl -youtube-dlc +/youtube-dl +/youtube-dlc +/yt-dlp yt-dlp.zip *.exe @@ -50,12 +52,14 @@ yt-dlp.zip *.m4v *.mp3 *.3gp +*.webm *.wav *.ape *.mkv *.swf *.part *.ytdl +*.dump *.frag *.frag.urls *.aria2 diff --git a/README.md b/README.md index 4501ba426..0cc763491 100644 --- a/README.md +++ b/README.md @@ -652,7 +652,7 @@ Then simply run `make`. You can also run `make yt-dlp` instead to compile only t similar syntax to the output template can also be used. The parsed parameters replace any existing values and can be use in - output templateThis option can be used + output template. This option can be used multiple times. Example: --parse-metadata "title:%(artist)s - %(title)s" matches a title like "Coldplay - Paradise". Example diff --git a/yt_dlp/__init__.py b/yt_dlp/__init__.py index 15605ab31..2fd49cc8f 100644 --- a/yt_dlp/__init__.py +++ b/yt_dlp/__init__.py @@ -268,6 +268,11 @@ def _real_main(argv=None): any_printing = opts.print_json download_archive_fn = expand_path(opts.download_archive) if opts.download_archive is not None else opts.download_archive + # If JSON is not printed anywhere, but comments are requested, save it to file + printing_json = opts.dumpjson or opts.print_json or opts.dump_single_json + if opts.getcomments and not printing_json: + opts.writeinfojson = True + def report_conflict(arg1, arg2): write_string('WARNING: %s is ignored since %s was given\n' % (arg2, arg1), out=sys.stderr) if opts.remuxvideo and opts.recodevideo: @@ -472,7 +477,7 @@ def _real_main(argv=None): 'updatetime': opts.updatetime, 'writedescription': opts.writedescription, 'writeannotations': opts.writeannotations, - 'writeinfojson': opts.writeinfojson or opts.getcomments, + 'writeinfojson': opts.writeinfojson, 'allow_playlist_files': opts.allow_playlist_files, 'getcomments': opts.getcomments, 'writethumbnail': opts.writethumbnail, @@ -548,7 +553,6 @@ def _real_main(argv=None): 'postprocessor_args': opts.postprocessor_args, 'cn_verification_proxy': opts.cn_verification_proxy, 'geo_verification_proxy': opts.geo_verification_proxy, - 'config_location': opts.config_location, 'geo_bypass': opts.geo_bypass, 'geo_bypass_country': opts.geo_bypass_country, 'geo_bypass_ip_block': opts.geo_bypass_ip_block, diff --git a/yt_dlp/extractor/bilibili.py b/yt_dlp/extractor/bilibili.py index 764ac4d3c..78f4b1e76 100644 --- a/yt_dlp/extractor/bilibili.py +++ b/yt_dlp/extractor/bilibili.py @@ -558,6 +558,7 @@ class BilibiliAudioIE(BilibiliAudioBaseIE): formats = [{ 'url': play_data['cdns'][0], 'filesize': int_or_none(play_data.get('size')), + 'vcodec': 'none' }] song = self._call_api('song/info', au_id) diff --git a/yt_dlp/options.py b/yt_dlp/options.py index 269499022..59c08fb18 100644 --- a/yt_dlp/options.py +++ b/yt_dlp/options.py @@ -369,7 +369,7 @@ def parseOpts(overrideArguments=None): help='Download only the video, if the URL refers to a video and a playlist') selection.add_option( '--yes-playlist', - action='store_false', dest='noplaylist', default=False, + action='store_false', dest='noplaylist', help='Download the playlist, if the URL refers to a video and a playlist') selection.add_option( '--age-limit', @@ -1143,7 +1143,7 @@ def parseOpts(overrideArguments=None): 'Give field name to extract data from, and format of the field seperated by a ":". ' 'Either regular expression with named capture groups or a ' 'similar syntax to the output template can also be used. ' - 'The parsed parameters replace any existing values and can be use in output template' + 'The parsed parameters replace any existing values and can be use in output template. ' 'This option can be used multiple times. ' 'Example: --parse-metadata "title:%(artist)s - %(title)s" matches a title like ' '"Coldplay - Paradise". '