[python]PySimpleGUIを使っていたところ初歩的なエラーにつまずいてしまったので知恵をお借りしたいです
Q&A
Closed
解決したいこと
現在pythonでyt-dlpとPySimpleGuiを使い、youtubeから動画をダウンロードするプログラムを作っているのですが、恐らく初歩的であろうエラーでつまずいてしましました。
初心者ですので少なからず読みずらいプログラムで申し訳ございませんが何卒解決策を教えていただけると幸いです。
発生している問題・エラー
TypeError: cannot unpack non-iterable Input object
該当するソースコード
from yt_dlp import YoutubeDL
import PySimpleGUI as sg
#ダウンロード先のパス
music_path = "C:/Users/user/Music/音楽"
material_path = "C:/Users/user/Videos/素材"
other_path = "C:/Users/user/Videos/その他動画"
path = ""
mp_any = ""
sg.theme('DarkBlue')
#ラジオボタンでファイル形式や使用用途によってダウンロード先を変える
layout = [
[sg.Text('URL:',sg.InputText('',key="url"))],
[sg.Radio('mp4',group_id='mp',key='mp4')],
[sg.Radio('mp3',group_id='mp',key='mp3')],
[sg.Radio('音楽',group_id='genre',key='music')],
[sg.Radio('素材',group_id='genre',key='material')],
[sg.Radio("その他",group_id="genre",key="other")],
[sg.Button('決定',key="submit")]
]
window=sg.Window("動画ダウンローダー",layout,size=(500,500))
while True:
#ここでTypeErrorが発生
event,values = window.read()
if event == sg.WIN_CLOSED:
break
elif event == "submit":
url = values["url"]
mp4 = values["mp4"]
mp3 = values["mp3"]
music = values["music"]
material = values["material"]
other = values['other']
# mp3かmp4どちらにするか
if mp3 == True:
mp_any = "bestaudio"
elif mp4 == True:
mp_any = "best"
#ダウンロード先のパスの選択
if music == True:
path = music_path
elif material == True:
path = material_path
elif other == True:
path = other_path
option = {
'outtmpl': path+'/%{title}s.%{ext}s',
'format':mp_any
}
ydl=YoutubeDL(option)
result = ydl.download(url)
window.close()
自分で試したこと
似たような問題が起きた人や引っ掛かりそうなワードで片っ端から調べてみましたが収穫はありませんでした。
是非皆さんの知恵をお借りしたいです。
0