2017-10-10 155 views
2

我是一名編程新手,我正在從YouTube上製作一個簡單的mp3下載程序。而我的問題我不知道如何將filedialog.askdirectory()目錄更改爲下載的音樂。我在哪裏可以定義的目錄,請檢查以下內容:如何在python中更改目錄youtube_dl

from tkinter import * 
from tkinter import filedialog 
from tkinter import messagebox 
import youtube_dl 

import sys 

root=Tk() 
root.resizable(0,0) 


def save(): 
    messagebox.showinfo('Wybór', 'Wybierz folder docelowy') 
    directory=filedialog.askdirectory() 
     ydl_opts = { 
     'format': 'bestaudio/best', 
     'postprocessors': [{ 
      'key': 'FFmpegExtractAudio', 
      'preferredcodec': 'mp3', 
      'preferredquality': '192', 
     }], 
    } 
    with youtube_dl.YoutubeDL(ydl_opts) as ydl: 
     ydl.download([e1.get()]) 


    messagebox.showinfo('Zakonczone','Pobieranie zakonczone') 



def exit(): 
    sys.exit() 


root.title('Youtube downloader') 
l1=Label(root,text='Wpisz adres url filmu Youtube',font=20) 
l1.pack() 
e1=Entry(root,width=50) 
e1.pack() 
b1=Button(root,text='Pobierz',width=7,height=2,command=save) 
b1.pack(side=LEFT) 
b2=Button(root,text='Wyjdź',command=exit,width=7,height=2) 
b2.pack(side=RIGHT) 




root.mainloop() 

回答

0

要下載的視頻在配置一個指定的文件夾使用outtmpl

我創建了一個名爲downloaded_music文件夾,然後更新您的代碼如下:

from tkinter import * 
from tkinter import filedialog 
from tkinter import messagebox 
import youtube_dl 

import sys 

root=Tk() 
root.resizable(0,0) 

def save(): 
    #messagebox.showinfo('Wybór', 'Wybierz folder docelowy') 
    #messagebox.showinfo('Folder Selection', 'Select download folder') 
    #directory=filedialog.askdirectory() 
    directory = 'downloaded_music' 
    ydl_opts = { 
     'outtmpl': 'downloaded_music/%(title)s-%(id)s.%(ext)s', 
     'format': 'bestaudio/best', 
     'postprocessors': [{ 
      'key': 'FFmpegExtractAudio', 
      'preferredcodec': 'mp3', 
      'preferredquality': '192', 
     }], 
    } 
    with youtube_dl.YoutubeDL(ydl_opts) as ydl: 
     ydl.download([e1.get()]) 
    #messagebox.showinfo('Zakonczone','Pobieranie zakonczone') 
    messagebox.showinfo('Success','Download completed') 

def exit(): 
    sys.exit() 

if __name__ == '__main__': 
    root.title('Youtube downloader') 
    #l1=Label(root,text='Wpisz adres url filmu Youtube',font=20) 
    l1=Label(root,text='Download MP3 from Youtube video',font=20) 
    l1.pack() 
    e1=Entry(root,width=50) 
    e1.pack() 
    #b1=Button(root,text='Pobierz',width=7,height=2,command=save) 
    b1=Button(root,text='Download',width=7,height=2,command=save) 
    b1.pack(side=LEFT) 
    #b2=Button(root,text='Wyjdź',command=exit,width=7,height=2) 
    b2=Button(root,text='Exit',command=exit,width=7,height=2) 
    b2.pack(side=RIGHT) 
    root.mainloop() 

現在下載的文件都存儲在downloaded_music文件夾中。