如何使用download-dl仅通过mp4格式通过URL播放列表下载视频,而不是通过.mkv.webm格式下载视频?

我使用以下命令下载视频:youtube-dl -itcv --yes-playlist https://www.youtube.com/playlist?list=....

结果此命令是扩展名为.mp4.mkv.webm的视频

评论

查看--list-formats和--format nn开关。

使用了-f mp4。但是有一次以150mb在mp4上下载文件,另一次以90mb下载。我已经阅读了通过“ youtube --help”获得的帮助,但找不到可以专门下载最大质量的另一个参数!

答案很简单:youtube-dl --recode-video mp4 URL。

#1 楼

要列出可用的格式类型:

youtube-dl -F url


然后您可以通过输入格式代码的编号来选择下载某种格式类型(在11下面的示例中) :

youtube-dl -f 11 url 


来自webupd8的示例

youtube-dl -F http://www.youtube.com/watch?v=3JZ_D3ELwOQ


示例输出:

[youtube] Setting language
[youtube] 3JZ_D3ELwOQ: Downloading webpage
[youtube] 3JZ_D3ELwOQ: Downloading video info webpage
[youtube] 3JZ_D3ELwOQ: Extracting video information
[info] Available formats for 3JZ_D3ELwOQ:
format code extension resolution  note 
171         webm      audio only  DASH webm audio , audio@ 48k (worst)
140         m4a       audio only  DASH audio , audio@128k
160         mp4       192p        DASH video 
133         mp4       240p        DASH video 
134         mp4       360p        DASH video 
135         mp4       480p        DASH video 
136         mp4       720p        DASH video 
137         mp4       1080p       DASH video 
17          3gp       176x144     
36          3gp       320x240     
5           flv       400x240     
43          webm      640x360     
18          mp4       640x360     
22          mp4       1280x720    (best)


您可以选择best并键入

youtube-dl -f 22 http://www.youtube.com/watch?v=3JZ_D3ELwOQ



要获得最佳的视频质量(1080p DASH-格式“ 137”)和最佳音频质量(DASH音频-格式“ 140”),则必须使用以下命令:


youtube-dl -f 137+140 http://www.youtube.com/watch?v=3JZ_D3ELwOQ


EDIT

您可以在此处获得更多选项

视频选择:

--playlist-start NUMBER          Playlist video to start at (default is 1)
--playlist-end NUMBER            Playlist video to end at (default is last)
--playlist-items ITEM_SPEC       Playlist video items to download. Specify
                             indices of the videos in the playlist
                             separated by commas like: "--playlist-items
                             1,2,5,8" if you want to download videos
                             indexed 1, 2, 5, 8 in the playlist. You can
                             specify range: "--playlist-items
                             1-3,7,10-13", it will download the videos
                             at index 1, 2, 3, 7, 10, 11, 12 and 13.
--match-title REGEX              Download only matching titles (regex or
                             caseless sub-string)
--reject-title REGEX             Skip download for matching titles (regex or
                             caseless sub-string)
--max-downloads NUMBER           Abort after downloading NUMBER files
--min-filesize SIZE              Do not download any videos smaller than
                             SIZE (e.g. 50k or 44.6m)
--max-filesize SIZE              Do not download any videos larger than SIZE
                             (e.g. 50k or 44.6m)
--date DATE                      Download only videos uploaded in this date
--datebefore DATE                Download only videos uploaded on or before
                             this date (i.e. inclusive)
--dateafter DATE                 Download only videos uploaded on or after
                             this date (i.e. inclusive)
--min-views COUNT                Do not download any videos with less than
                             COUNT views
--max-views COUNT                Do not download any videos with more than
                             COUNT views
--match-filter FILTER            Generic video filter (experimental).
                             Specify any key (see help for -o for a list
                             of available keys) to match if the key is
                             present, !key to check if the key is not
                             present,key > NUMBER (like "comment_count >
                             12", also works with >=, <, <=, !=, =) to
                             compare against a number, and & to require
                             multiple matches. Values which are not
                             known are excluded unless you put a
                             question mark (?) after the operator.For
                             example, to only match videos that have
                             been liked more than 100 times and disliked
                             less than 50 times (or the dislike
                             functionality is not available at the given
                             service), but who also have a description,
                             use --match-filter "like_count > 100 &
                             dislike_count <? 50 & description" .
--no-playlist                    Download only the video, if the URL refers
                             to a video and a playlist.
--yes-playlist                   Download the playlist, if the URL refers to
                             a video and a playlist.
--age-limit YEARS                Download only videos suitable for the given
                             age
--download-archive FILE          Download only videos not listed in the
                             archive file. Record the IDs of all
                             downloaded videos in it.
--include-ads                    Download advertisements as well
                             (experimental)


评论


当我在播放列表上下载视频时,通过“ youtube-dl -itcv --yes-播放列表网址”存在一些未下载的视频。我该怎么办?还是存在此问题,因为我没有使用参数“ -f mp4”,并且在程序选择最佳格式进行下载时发生了错误?

–埃德加·奥利维拉(Edgar Oliveira)
16-3-29在21:13

只需输入youtube-dl-是播放列表网址

– GAD3R
16 Mar 29 '16 at 22:37

继续同一个问题。我尝试在播放列表中下载了YouTube上的42个视频。但是,只有34个视频被下载。输出为:[youtube:playlist]播放列表名称播放列表:正在下载34个视频

–埃德加·奥利维拉(Edgar Oliveira)
16-3-29在23:14

@EdgarOliveira经常在播放列表中有一些已删除的视频,但youtube继续包含在播放列表中...这是导致此问题的原因

–斯科特·斯滕斯兰德
16年8月2日,下午2:38

#2 楼

像这样(源):

 youtube-dl -f 'bestvideo[ext=mp4]+bestaudio[ext=m4a]/mp4' url 


评论


很酷,它下载了最好的视频+最好的音频并将其合并在一起。

– Renetik
17年2月1日在6:08

如果您不在乎OP要求的特定格式,那么值得注意的是,自2015年以来,youtube-dl的默认设置为-f bestvideo + bestaudio / best,因此已经设置为下载bestvideo和bestaudio(并自动进行混合)它们一起生成一个结果文件)。资料来源:github.com/rg3/youtube-dl/blob/master/…

– jj_
17年9月19日在6:46



@jj_绝对是-当我使用此命令行时,它将获得与最广泛的设备兼容的H.264 + AAC版本。

– s4y
17年9月19日在22:00

@ s4y是的,但是带有转码的风险。为避免这种情况,我将以不同的方式进行管理,而不是对每个下载的文件都强制使用单一容器格式。

– jj_
17年9月21日在6:13

@ s4y youtube-dl确实会在需要时进行转码(--audio-format选项),但是您就在这里:事实并非如此,因为您要强制youtube-dl下载两个文件(bestaudio [ ext = mp4]和bestvideo [ext = m4a])具有相同的通用容器(mp4),因此无论内容如何,​​在对其进行重新混合时,它们都将被堆叠在另一个mp4中,而无需任何代码转换。

– jj_
17年9月21日在22:00

#3 楼

根据glenn-slayden的评论,获得了具有最高视频质量的mp4格式,如下所示:

我意识到此线程有些陈旧,但我认为情况有所改变。对于我的目标:

无论格式如何,始终保持最佳视频质量;
但是永远不要让音频格式单独导致您丢失mp4。

以前,我使用的是bestvideo+bestaudio/best,但是我发现以下变体可以更好地减少mkv,(显然)消除了webm,但仍保证了最高质量的视频(使用此选项时请勿使用--merge-output-format选项):
--format bestvideo+bestaudio[ext=m4a]/bestvideo+bestaudio/best 

请注意,在第一个术语中,ext过滤器是为音频而不是视频指定的,这种技术在上面的讨论中没有提到。如果这对于我提出的目标来说似乎是倒退,那可能是因为考虑到我们正在尝试确保视频格式为mp4,为什么对音频设置了约束?
关键是每个后备项(如果其要求的任何部分失败,则以斜杠分隔)将失败,然后继续下一个学期。使用bestvideo+bestaudio时,很多情况下只会出现非mp4容器的情况,因为格式选择明确地坚持使用bestaudio,这可能意味着混合格式。这是因为bestvideo+bestaudio命令过于坚持,以至于您被迫退出mp4
但是,如果您更关心获取mp4容器而不是音频质量,该怎么办?通过首先坚持使用m4a音频-然后在再次发行bestvideo时放下这一部分-(通过使用上面的格式选择),您本质上表达了mp4相对于其他容器的灵活偏好;如果可以的话,您当然希望使用mp4,但这并不是以降低视频质量为代价的。
就像我说的,您可能仍然会得到一些帮助,但是它们的数量将大大减少,并且仅在需要提供(据说)更好的视频时才使用。到目前为止,使用此配置,我根本看不到任何mkv,因为类似248 + 140的工作最终以webm结尾。 。因此完整的命令是:
youtube-dl --format "bestvideo+bestaudio[ext=m4a]/bestvideo+bestaudio/best" --merge-output-format mp4


评论


尽管其他答案将下载最高质量的可用mp4,尽管在某些情况下进行了转换,此答案仍可能产生最高质量的mp4。

– dtmland
20-6-27在16:19



#4 楼

您可以使用youtube-dl -f mp4 <url>

我不确定这样做是否正确,仅能正常工作,是否会为mp4格式的音频和视频提供最高质量的mp4文件。

此文件与使用-f <the best options>获得的文件略有不同,尽管流似乎相同。我在视频上都尝试过:-f mp4-f 137+140(手动选择最佳的音频和视频)。 ffprobe讲述了有关使用-f mp4获得的文件的信息:

Metadata:
    major_brand     : mp42
    minor_version   : 0
    compatible_brands: isommp42
    creation_time   : 2019-06-23T18:39:33.000000Z
    Duration: 00:00:56.01, start: 0.000000, bitrate: 906 kb/s
    Stream #0:0(und): Video: h264 (Main) (avc1 / 0x31637661), yuv420p(tv, bt709), 1280x720 [SAR 1:1 DAR 16:9], 775 kb/s, 25 fps, 25 tbr, 12800 tbn, 50 tbc (default)
Metadata:
      creation_time   : 2019-06-23T18:39:33.000000Z
      handler_name    : ISO Media file produced by Google Inc. Created on: 06/23/2019.
    Stream #0:1(eng): Audio: aac (LC) (mp4a / 0x6134706D), 44100 Hz, stereo, fltp, 127 kb/s (default)
Metadata:
      creation_time   : 2019-06-23T18:39:33.000000Z
      handler_name    : ISO Media file produced by Google Inc. Created on: 06/23/2019.


关于有关通过-f 137+140获得的文件的信息:

  Metadata:
    major_brand     : isom
    minor_version   : 512
    compatible_brands: isomiso2avc1mp41
    encoder         : Lavf58.9.100
  Duration: 00:00:56.05, start: 0.000000, bitrate: 909 kb/s
    Stream #0:0(und): Video: h264 (Main) (avc1 / 0x31637661), yuv420p(tv, bt709), 1280x720 [SAR 1:1 DAR 16:9], 775 kb/s, 25 fps, 25 tbr, 12800 tbn, 50 tbc (default)
    Metadata:
      handler_name    : VideoHandler
    Stream #0:1(eng): Audio: aac (LC) (mp4a / 0x6134706D), 44100 Hz, stereo, fltp, 127 kb/s (default)
    Metadata:
      handler_name    : SoundHandler


因此,视频和音频流看起来相同,但是使用了一个不同的混合器(如果我正确使用了该术语)将它们放到最终文件中。

#5 楼

而不是使用此下载一个.mkv文件:
youtube-dl 'https://www.youtube.com/watch?v=GwIzYX5t5l4'

只需使用此下载一个.mp4文件:
youtube-dl 'https://www.youtube.com/watch?v=GwIzYX5t5l4' --format "bestvideo+bestaudio[ext=m4a]/bestvideo+bestaudio/best" --merge-output-format mp4