问题描述
我用python写了一小段代码,以从YouTube视频中提取音频。这是代码:
y_test
如您所见,将显示音频文件的所有详细信息,例如“修改日期”,“类型”和“大小”。
但是,如果我将from __future__ import unicode_literals
import youtube_dl
link = input("Enter the video link:")
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)
path = f'D:\\{video_title}.mp3'
ydl_opts.update({'outtmpl':path})
with youtube_dl.YoutubedL(ydl_opts) as ydl:
ydl.download([link])
更改为path = f'D:\\{video_title}.mp3'
,则不会显示文件详细信息。
您为什么会这样?有什么办法解决这个问题?任何帮助,将不胜感激。谢谢。
解决方法
由于YT_Files是目录,因此可以将路径设置为path = f'D:\\{video_title}.mp3'
,这将导致显示元数据。然后尝试使用os.system()
将文件移动到YT_Files。然后,您应该在YT_Folders上具有元数据。如果不是,那么我认为它是Windows资源管理器的错。以下代码应该可以工作,但是我不是100%确信此语法将在Windows上工作。
from __future__ import unicode_literals
import youtube_dl
link = input("Enter the video link:")
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)
path = f'D:\\{video_title}.mp3'
ydl_opts.update({'outtmpl':path})
with youtube_dl.YoutubeDL(ydl_opts) as ydl:
ydl.download([link])
import os
os.system('move D:\\*.mp3 D:\\YT_Files\\')
运行此代码,并检查是否存在元数据。不要通过Windows资源管理器进行检查。转到“属性”。单击“详细信息”选项卡,然后向下滚动。
如果您使用Date-Modified
或Type
查找属性,则问题出在Windows资源管理器/文件资源管理器中,但是如果您没有找到,我将尝试调试