如何使用python将下载的音频文件扩展名重命名为mp3



目前我正在尝试下载youtube音乐视频作为基于艺术家名称和歌曲标题的音频文件,下载所有视频后,我试图将所有音频文件从。webm或。mp4扩展名重命名为。mp3。但似乎我面临一些错误,改变文件名和扩展名为。mp3。我的代码基本上不会重命名音频文件的名称和扩展名。谁能帮我把下载的文件重命名为。mp文件?

这是我的代码.........

import os
from requests import get
from yt_dlp import YoutubeDL
YDL_OPTIONS = {'format' : 'bestaudio/best', 'noplaylist' : 'True'}
filename=[]
old=[]
positions=[]
def search(arg, index):
with YoutubeDL(YDL_OPTIONS) as ydl:
try:
get(arg)
except:
song =   ydl.extract_info(f"ytsearch:{arg}", download=True)['entries'][0]
else:
song =   ydl.extract_info(arg, download=True)
oldpath = song['title'] + '[' + song['id'] + ']' + '.' + song['ext'] 
old.append(oldpath)
newpath = f"{song['title']}.mp3"
if os.path.isfile(oldpath):
os.rename(f"{oldpath}",newpath)
filename.append(str(newpath))
else:
filename.append(str(newpath))
positions.append(index)

return filename , positions, old

title = (dataset['Title'] + " " + dataset['Artist']).tolist()
for index, arg in enumerate(title):
filename, positions, old = search(arg, index=index )

这里oldpath =以这种格式下载的原始文件Newpath =我要重命名的格式title包含歌曲名称和艺人名称(如:Falling - Harry Styles)。还有一件事是,如果我检查文件名,它成功地显示了所有音频文件名与。mp3,但如果我试图运行重命名的音频文件和。mp3,它会给我这个错误"FileNotFoundError: [Errno 2]没有这样的文件或目录:' the Weeknd - Blinding Lights (Official Video).mp3'">

您确定文件正在被下载到指定位置吗?假设文件名正确,另一个选项是目录不正确。

参数outtmpl允许您为文件名和路径定义模板。详细信息请参考原youtube-dl的文档

下面是一个例子:

ydl_options = {
'outtmpl': '~/Music/%(extractor_key)s/%(extractor)s-%(id)s-%(title)s.%(ext)s'
}
ydl = yt_dlp.YoutubeDL(ydl_opts)

最新更新