3 回答

TA貢獻(xiàn)1796條經(jīng)驗(yàn) 獲得超4個(gè)贊
嘗試:
def download_audio():
#try:
b2.config(text="Please wait...")
b2.config(state=DISABLED)
stream = yt.streams.filter(res="480p")
path = filedialog.askdirectory()
if path == None:
return
stream[0].download(path)
for i in os.listdir(path):
os.rename(os.path.join(path,i),os.path.join(path,i.replace(' ','_')))
title = yt.title.replace(' ','_')
print(title)
print(path)
video = VideoFileClip(os.path.join(path,title+".mp4"))
print(video)
video.audio.write_audiofile(os.path.join(path,title+".mp3"))
路徑需要使用逗號(hào)而不是“//”在 os.path 中建立。

TA貢獻(xiàn)1863條經(jīng)驗(yàn) 獲得超2個(gè)贊
弄清楚了。實(shí)際上 streams.filter("480p") 給了我一個(gè)沒有音頻的只有視頻的流,這就是為什么出現(xiàn)非類型錯(cuò)誤,因?yàn)樗鼪]有音頻對(duì)象。通過(guò)執(zhí)行 streams.filter(progressive=True) 解決了它。
def download_audio():
#try:
b2.config(text="Please wait...")
b2.config(state=DISABLED)
stream = yt.streams.filter(progressive=True)
path = filedialog.askdirectory()
if path == None:
return
stream[0].download(path)
for i in os.listdir(path):
os.rename(os.path.join(path,i),os.path.join(path,i.replace(' ','_')))
title = yt.title.replace(' ','_')
print(title)
print(path)
video = VideoFileClip(os.path.join(path+"//"+title+".mp4"))
print(video)
video.audio.write_audiofile(os.path.join(path+"//"+title+".mp3"))

TA貢獻(xiàn)1891條經(jīng)驗(yàn) 獲得超3個(gè)贊
嘗試video.write_audiofile(os.path.join(path+"//"+title+".mp3"))
您最好使用 ffmpeg 轉(zhuǎn)換視頻或使用 opencv 進(jìn)行所有視頻管理。
添加回答
舉報(bào)