Erstellen Sie eine GUI zum Herunterladen von Youtube-Videos mit Python
Voraussetzungen: Python GUI - tkinter
YouTube ist eine sehr beliebte Website zum Teilen von Videos. Das Herunterladen von Videos / Wiedergabelisten von YouTube ist eine mühsame Aufgabe. Wenn Sie dieses Video über Downloader herunterladen oder versuchen, es von einer zufälligen Website herunterzuladen, erhöht sich das Risiko, dass Ihre persönlichen Daten geleckt werden. Mit dem Python Tkinter-Paket ist diese Aufgabe sehr einfach, effizient und sicher. Nur wenige Codes laden das Video für Sie herunter. Dafür gibt es zwei Python-Bibliotheken - Tkinter und pytube .
Erforderliche Module
- pytube: pytube ist eine leichte, einfach zu verwendende, abhängigkeitsfreie Python-Bibliothek, die zum Herunterladen von Videos aus der web.pytube verwendet wird. Sie ist keine automatisch konfigurierte Bibliothek. Sie müssen es installieren, bevor Sie es verwenden können. Die Installation von Pytube ist einfach, wenn Sie Pip haben. Geben Sie in der Terminal- oder Eingabeaufforderung den folgenden Befehl ein, um pytube zu installieren.
Wenn Sie unter Mac OS X oder Linux arbeiten, funktioniert wahrscheinlich einer der folgenden beiden Befehle für Sie:
pip install pytube
git clone git: //github.com/NFicano/pytube.git pytube | cd pytube | python setup.py installierenWenn Sie auf Windows sind
pip install pytube3
- Tkinter : Tkinter ist eine Python-Bindung zum Tk-GUI-Toolkit. Es ist die Standard-Python-Schnittstelle zum Tk-GUI-Toolkit oder in einfachen Worten wird Tkinter als grafische Python-Benutzeroberfläche verwendet. Tkinter ist die native Bibliothek. Sie müssen sie nicht extern installieren, sondern nur importieren, während Sie sie verwenden.
Unten ist die Implementierung.
import
tkinter as tk
from
tkinter
import
*
from
pytube
import
YouTube
from
tkinter
import
messagebox, filedialog
def
Widgets():
link_label
=
Label(root,
text
=
"YouTube link :"
,
bg
=
"#E8D579"
)
link_label.grid(row
=
1
,
column
=
0
,
pady
=
5
,
padx
=
5
)
root.linkText
=
Entry(root,
width
=
55
,
textvariable
=
video_Link)
root.linkText.grid(row
=
1
,
column
=
1
,
pady
=
5
,
padx
=
5
,
columnspan
=
2
)
destination_label
=
Label(root,
text
=
"Destination :"
,
bg
=
"#E8D579"
)
destination_label.grid(row
=
2
,
column
=
0
,
pady
=
5
,
padx
=
5
)
root.destinationText
=
Entry(root,
width
=
40
,
textvariable
=
download_Path)
root.destinationText.grid(row
=
2
,
column
=
1
,
pady
=
5
,
padx
=
5
)
browse_B
=
Button(root,
text
=
"Browse"
,
command
=
Browse,
width
=
10
,
bg
=
"#05E8E0"
)
browse_B.grid(row
=
2
,
column
=
2
,
pady
=
1
,
padx
=
1
)
Download_B
=
Button(root,
text
=
"Download"
,
command
=
Download,
width
=
20
,
bg
=
"#05E8E0"
)
Download_B.grid(row
=
3
,
column
=
1
,
pady
=
3
,
padx
=
3
)
def
Browse():
download_Directory
=
filedialog.askdirectory(initialdir
=
"YOUR DIRECTORY PATH"
)
download_Path.
set
(download_Directory)
def
Download():
Youtube_link
=
video_Link.get()
download_Folder
=
download_Path.get()
getVideo
=
YouTube(Youtube_link)
videoStream
=
getVideo.streams.first()
videoStream.download(download_Folder)
messagebox.showinfo(
"SUCCESSFULLY"
,
"DOWNLOADED AND SAVED IN\n"
+
download_Folder)
root
=
tk.Tk()
root.geometry(
"600x120"
)
root.resizable(
False
,
False
)
root.title(
"YouTube_Video_Downloader"
)
root.config(background
=
"#000000"
)
video_Link
=
StringVar()
download_Path
=
StringVar()
Widgets()
root.mainloop()
Ausgabe: