使用pytube下载的Mp3文件无法正确编辑mp3标签

问题描述 投票:0回答:2

我想使用pytube下载音乐,但是用它下载的Mp3文件无法显示ID3标签(专辑、艺术家等)。我使用了 eyes3、MoviePy 和 Mp3tag,但是它们并没有解决我的问题。我也无法在扬声器上听这些音乐。

使用

yt.streams.filter(only_audio=True).first()
下载的文件格式是mp4,我想使用mp3文件。我在网上找到的方法是直接更改文件扩展名

from pytube import YouTube
import os

yt = YouTube(input('Url of the video...'))
print('Got', yt. title)

path = "C:/Users/USER/Music"
video = yt.streams.filter(only_audio=True).first()
out_file = video.download(output_path=path)
base, ext = os.path.splitext(out_file)
new_file = base + '.mp3' # Change.mp4 to .mp3
os.rename(out_file, new_file)

print(yt. title, "downloaded")

但是当我兴致勃勃地开始设置专辑和艺人信息时,却发现无法修改。我尝试了eyed3,但发现只有几次标签可以正常添加,而且如果我下载后编写程序更改标签,根本不起作用。

artist = input('Artist...')
album = input('Album...')

file = eyed3. load(new_file)
file.initTag(); # Actually I don't know what this did
file.tag.artist = artist
file.tag.album = album
file.tag.track_num = i + 1 # I used a loap to set track num
file.tag.save()

我尝试了 Mp3tag 应用程序。程序界面上显示

ERROR: MP3 header parse error
(参见:如何修复错误:MP3头解析错误,但可以编辑。但是编辑后的标签无法在文件资源管理器中显示,编辑后的文件也无法播放)值得注意的是,未经Mp3tag修改的文件仍然可以在电脑上播放,但是当我使用USB盘的扬声器时,它无法播放(参见:汽车无法识别我用我的音乐下载的音乐。自己的Python应用程序

PS:我尝试过MoviePy将文件转换为mp3,但它返回

KeyError: 'video_fps'

python mp3 pytube
2个回答
0
投票

将扩展名从

.mp4
更改为
.mp3
只会欺骗您的音乐播放器认为它是 mp3,但实际上它仍然是 mp4 文件。

您的扬声器可能不够智能,无法读取这些 mp4 文件,并且 mp3 标签库无法更改 mp4 文件上的标签,因为它是不同的文件类型。

您需要额外的步骤才能正确将 mp4 转换为 mp3 文件。解决方案可以通过MoviePy,如另一个堆栈溢出问题这里所建议的。


0
投票

将其下载为 MP4,然后使用 VLC 播放器将其转换为 MP3。 我这样做是因为我遇到了同样的问题并且它对我有用。

© www.soinside.com 2019 - 2024. All rights reserved.