PyTube 下载 mp4 格式的音频文件。怎么修?
PyTube downloads audio file in mp4 format. How to fix?
下午好。我是 python 的初学者。因此,我尝试使用 PyTube 制作 YouTube Video/Audio 下载器(仅用于教育目的)。我在 youtube 上看过很多视频,我试图让这个工具变得更好。所以我添加了 video/audio 选择选项和 resulation/quality 选择选项。好消息是我已经成功制作了视频下载器。但是我在音频下载器中遇到了问题。问题是,PyTube downloads the audio file in MP4 format
。我在 google 和 youtube 上搜索过。但我找不到任何解决办法。我想将 from mp4 重命名为 mp3(因为文件没问题,但格式不对)。作为初学者,我不知道如何将下载文件保存在其他地方(临时文件夹),并重命名然后将其传输到输出文件夹。我尝试添加 filename=link.title+'mp3'
。但是 returns 这个错误:OSError: [Errno 22] Invalid argument: 'G:/Downloaded Videos/Latest English Ringtone | Turkish Bgm Ringtone 2021 | Bad Boy | Attitude Tone | Villain Ringtone.mp3'
这是我的代码:
from pytube import YouTube
link='https://www.youtube.com/watch?v=KrhPrPK2owA'
link=YouTube(link)
print('Title:',link.title+'\n'+'Views:',link.views)
streams=link.streams.filter(type='audio')
kbps_list=[]
itag_list=[]
print('Available Kbps: ',end='')
for s in streams:
i=s.itag
s=s.abr
if s not in kbps_list:
kbps_list.append(s)
itag_list.append(i)
print(s,end=' ')
reso=input('\nEnter Kbps to download: ')
if reso not in kbps_list:
print('This Kbps is not available')
from sys import exit
exit()
reso=kbps_list.index(reso)
final=streams.get_by_itag(itag_list[reso])
print('Downloading...')
final.download('G:/Downloaded Videos/')
# final.download('G:/Downloaded Videos/', filename=link.title+'mp3')======================
# if I add custom filename, It returns the error ========================================
print('Successfully Downloaded!')
需要设置文件名,可以像您尝试的那样以mp3格式下载,但它仍然是mp4a格式。不确定这对你是否重要。
你的标题很奇怪,它包括文件路径。可能是 link.title 不起作用的原因。试试下面的代码去除标题和文件路径。
import os
head tail = os.path.split(link.title)
final=streams.get_by_itag(itag_list[reso]).download(filename=tail.strip(" | ") + ".mp3")
您还可以通过传递参数 output_path="some location"
.
来设置输出目录
看起来像:
final=streams.get_by_itag(itag_list[reso]).download(output_path="some location", filename=tail.strip(" | ") + ".mp3")
下午好。我是 python 的初学者。因此,我尝试使用 PyTube 制作 YouTube Video/Audio 下载器(仅用于教育目的)。我在 youtube 上看过很多视频,我试图让这个工具变得更好。所以我添加了 video/audio 选择选项和 resulation/quality 选择选项。好消息是我已经成功制作了视频下载器。但是我在音频下载器中遇到了问题。问题是,PyTube downloads the audio file in MP4 format
。我在 google 和 youtube 上搜索过。但我找不到任何解决办法。我想将 from mp4 重命名为 mp3(因为文件没问题,但格式不对)。作为初学者,我不知道如何将下载文件保存在其他地方(临时文件夹),并重命名然后将其传输到输出文件夹。我尝试添加 filename=link.title+'mp3'
。但是 returns 这个错误:OSError: [Errno 22] Invalid argument: 'G:/Downloaded Videos/Latest English Ringtone | Turkish Bgm Ringtone 2021 | Bad Boy | Attitude Tone | Villain Ringtone.mp3'
这是我的代码:
from pytube import YouTube
link='https://www.youtube.com/watch?v=KrhPrPK2owA'
link=YouTube(link)
print('Title:',link.title+'\n'+'Views:',link.views)
streams=link.streams.filter(type='audio')
kbps_list=[]
itag_list=[]
print('Available Kbps: ',end='')
for s in streams:
i=s.itag
s=s.abr
if s not in kbps_list:
kbps_list.append(s)
itag_list.append(i)
print(s,end=' ')
reso=input('\nEnter Kbps to download: ')
if reso not in kbps_list:
print('This Kbps is not available')
from sys import exit
exit()
reso=kbps_list.index(reso)
final=streams.get_by_itag(itag_list[reso])
print('Downloading...')
final.download('G:/Downloaded Videos/')
# final.download('G:/Downloaded Videos/', filename=link.title+'mp3')======================
# if I add custom filename, It returns the error ========================================
print('Successfully Downloaded!')
需要设置文件名,可以像您尝试的那样以mp3格式下载,但它仍然是mp4a格式。不确定这对你是否重要。 你的标题很奇怪,它包括文件路径。可能是 link.title 不起作用的原因。试试下面的代码去除标题和文件路径。
import os
head tail = os.path.split(link.title)
final=streams.get_by_itag(itag_list[reso]).download(filename=tail.strip(" | ") + ".mp3")
您还可以通过传递参数 output_path="some location"
.
看起来像:
final=streams.get_by_itag(itag_list[reso]).download(output_path="some location", filename=tail.strip(" | ") + ".mp3")