【问题标题】:YouTube-DL Python output file format not mp4YouTube-DL Python 输出文件格式不是 mp4
【发布时间】:2021-01-03 10:16:14
【问题描述】:

我用 python 编写了一小段代码来从 YouTube 视频中提取音频或视频。代码如下:

from __future__ import unicode_literals
import youtube_dl

link = input("Enter the video link:")

while True:
    choice = input("Enter a for audio file, v for video file:")
    if choice == "a" or choice == "v":
        break

ydl_opts = {}

if choice == "a":
    ydl_opts = {
        'format': 'bestaudio/best',
        'postprocessors': [{
            'key': 'FFmpegExtractAudio',
            'preferredcodec': 'mp3',
            'preferredquality': '192',
        }],
    }
    
with youtube_dl.YoutubeDL(ydl_opts) as ydl:
    info_dict = ydl.extract_info(link, download=False)
    video_title = info_dict.get('title', None)

if choice == "a":
    path = f'D:\\DwnldsYT\\{video_title}.mp3'
if choice == "v":
    path = f'D:\\DwnldsYT\\{video_title}.mp4'

ydl_opts.update({'outtmpl':path})

with youtube_dl.YoutubeDL(ydl_opts) as ydl:
    ydl.download([link])

音频提取工作正常,但问题在于视频提取。当我提取视频时,我得到的输出是 mkv 文件,而不是 mp4 文件。关于如何将视频文件保存为 mp4 的任何想法?

【问题讨论】:

标签: python video ffmpeg youtube youtube-dl


【解决方案1】:

如果视频质量高于 1080p 则无法下载为 MP4,请尝试下载最大分辨率为 720p 或 1080p 的视频以检查是否仍在以 mkv 格式下载

【讨论】:

  • 我可以下载为 mp4 的最大分辨率为 480p。有什么方法可以将 1080p 视频下载为 mp4?
  • 用 youtube_dl.YoutubeDL({'format':'137'}) as ydl 试试这个`: ydl.download([url]) ` 正如@thekid77777 提到的,看到这个stackoverflow.com/questions/44870658/…跨度>
  • 它有效。谢谢!但我面临另一个问题。以前,YT vid 的音频和视频都会被下载。但现在,只有视频被下载。有什么方法可以将 1080p 的音频和 vid 下载为 mp4 文件?
  • 还有一件事。如果 YT vid 的最大分辨率是 720p 或 480p,那么我的代码会引发错误。有什么方法可以识别最佳视频资源并将我的 vid 下载为该资源中的 mp4?
  • 我遇到了同样的问题,但对于优于 1080p 的视频,当我研究它时发现这是 youtube dl 的工作方式,请尝试使用 pytube,不管这是我使用 youtube dl 制作的代码(供参考), github.com/SumukhJadhav/Python-Automation/blob/master/…
猜你喜欢
  • 2020-05-26
  • 2019-05-21
  • 1970-01-01
  • 2020-04-01
  • 1970-01-01
  • 2014-12-17
  • 2017-12-05
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多