Youtube ist eine Website, auf der Sie Videos frei hochladen und online teilen können. Aber was wäre, wenn es einen einfacheren Weg gäbe, diese Videos herunterzuladen, als zu versuchen, ihre URLs über den Quellcode zu finden? Nun, zum Glück ist es nicht wirklich so kompliziert, wie man vielleicht denkt. Es gibt verschiedene Programmierbibliotheken, die das Herunterladen von Youtube erheblich vereinfachen. In diesem Tutorial werden wir Youtube-Videos mit Python herunterladen. Wir werden PYtube verwenden, was uns dabei hilft, Youtube-Videos, Titel, Thumbnails und sogar komplette Wiedergabelisten herunterzuladen. Wir werden zwei Programme erstellen: Das erste ist ein befehlszeilenbasierter Downloader und eine weitere GUI-basierte Version, die wir mit Tkinter erstellen werden.

das Objektiv

  1. Abrufen des YouTube-Videotitels.
  2. Abrufen des YouTube-Video-Thumbnail-Bildes.
  3. Video von youtube herunterladen.
  4. Laden Sie Videos von YouTube in einer bestimmten Auflösung herunter.
  5. Wiedergabeliste von youtube.
  6. Erstellen Sie mit Tkinter einen GUI-basierten YouTube-Downloader.

Voraussetzungen

PYtube:

PyTube ist ein Open-Source-Python-Modul und ein Befehlszeilenprogramm zum Herunterladen von YouTube-Inhalten und Metadaten. Wenn Sie mit YouTube-DL vertraut sind, ist PyTube die gleiche Idee, aber in Python geschrieben. Das Tool benötigt nur sehr wenig zum Ausführen und läuft auf Windows-, Mac- und Linux-Systemen mit Python 2 und 3.

Sie können pytube mit dem folgenden Befehl in Ihrer Eingabeaufforderung oder Ihrem Terminal herunterladen.

pip install pytube3

Tkinter:

Tkinter ist ein erweitertes GUI-Modul für Python. Es ermöglicht Ihnen, flexible und leistungsstarke grafische Benutzeroberflächen zu erstellen. Anstatt nur ein einfaches Fenster mit Widgets darin bereitzustellen, können Sie mehrere Widgets zusammen platzieren, ihre Eigenschaften ändern und sie an Daten binden. Widgets sind grundlegende GUI-Komponenten, mit denen Sie die meisten Standard-GUI-Elemente erstellen können. Sie existieren in vielen Programmiersprachen, einschließlich Python.

Sie können Tkinter mit dem folgenden Befehl in Ihrer Eingabeaufforderung oder Ihrem Terminal herunterladen

pip install tkinter

Schritt -1: Abrufen des YouTube-Videotitels

from pytube import YouTube
url = 'https://www.youtube.com/watch?v=DODLEX4zzLQ'
yt_video = YouTube(url)
print(yt_video.title)

Code-Erklärung:

  1. Importieren Sie die Pakete.
  2. Hinzufügen der URL des YouTube-Videos, das wir herunterladen möchten.
  3. YouTube-Methode aufrufen.
  4. Drucken des Titels.

Ausgabe:

Wie Sie sehen können, hat es erfolgreich funktioniert und wir haben den Titel des YouTube-Videos

Schritt -2: Abrufen des YouTube-Video-Thumbnail-Bildes

from pytube import YouTube
url = 'https://www.youtube.com/watch?v=DODLEX4zzLQ'
yt_video = YouTube(url)
print(yt_video.thumbnail_url)

Code-Erklärung:

  1. Importieren Sie die Pakete.
  2. Fügen Sie die URL des YouTube-Videos hinzu, das wir herunterladen möchten.
  3. YouTube-Methode aufrufen.
  4. Holen Sie sich die Miniaturansicht des Videos mit der Miniaturansichtsmethode.

Ausgabe:

Sie erhalten einen Link in der Ausgabe und wenn Sie den Link öffnen, wird das Bild angezeigt. Das kannst du dort herunterladen.

Schritt -3: Video von Youtube herunterladen

from pytube import YouTube

url = 'https://www.youtube.com/watch?v=DODLEX4zzLQ'
yt_video = YouTube(url)
# this method will download the highest resolution that video is available
yt_video = my_video.streams.get_highest_resolution()
methodyt_video.download()

print('your video is downloaded successfully')

Code-Erklärung:

  1. Importieren Sie die Pakete.
  2. Fügen Sie die URL des YouTube-Videos hinzu, das wir herunterladen möchten.
  3. YouTube-Methode aufrufen.
  4. Um das Video von YouTube herunterzuladen, müssen wir zuerst die Stream-Auflösung definieren.
  5. Um das Video von YouTube herunterzuladen, verwenden wir die Download-Methode.

Nach dem Ausführen des Codes wird das Video heruntergeladen und nach Abschluss befindet sich Ihr YouTube-Video im selben Verzeichnis wie Ihre Python-Datei.

Schritt -4: Video von YouTube in einer bestimmten Auflösung herunterladen

Wenn Sie das Video in einer bestimmten Auflösung oder im Nur-Audio-Format herunterladen möchten, können Sie den folgenden Code verwenden

from pytube import YouTube
url = 'https://www.youtube.com/watch?v=DODLEX4zzLQ'
yt_video = YouTube(url)

# here we are fetching a list of all the video resolution
videos = yt_video.streams.all()
# we are using enumerate to get the index number
res_list = list(enumerate(videos))
for i in res_list:
    print(i)

resolution = int(input("Enter the index number of the video : "))
videos[resolution].download()
print('your video is downloaded successfully')

Code-Erklärung:

  1. Importieren Sie die Pakete.
  2. Hinzufügen der URL des YouTube-Videos, das wir herunterladen möchten.
  3. YouTube-Methode aufrufen.
  4. Hier rufen wir eine Liste aller Videoauflösungen ab.
  5. Wir verwenden enumerate, um die Indexnummer zu erhalten.

Ausgabe:

In der Ausgabe werden Sie gefragt, welche Version des Videos Sie herunterladen möchten, und Sie haben gerade die Indexnummer eingegeben und es wird automatisch heruntergeladen.

Sie können die Filtermethode verwenden, um nur Audio oder nur Video herauszufiltern

So laden Sie nur Audio herunter:

# for getting only audio list
videos = yt_video.streams.filter(only_audio=True)

Ausgabe:

So laden Sie nur Videos herunter:

# for getting only video list
videos = yt_video.streams.filter(only_audio=True)

Ausgabe:

Schritt -5: Wiedergabeliste von Youtube herunterladen

from pytube import Playlist

playlist = Playlist('https://www.youtube.com/playlist?list=PLG9-DrM4Coeq7vdqBb84sNRZZHEUfQDcK')

print('Number of videos in playlist: %s' % len(playlist.video_urls))
playlist.download_all()

Code-Erklärung:

  1. Importieren Sie die Pakete.
  2. Erstellen einer Variablen zum Speichern von Daten der Wiedergabeliste
  3. Füge den Link der Playlist hinzu
  4. Druckname des Videos, das gerade heruntergeladen wird.

Schritt -6: Erstellen Sie mit QT Designer einen GUI-basierten Youtube-Downloader

# import required libraries
import string
import tkinter as tk
from tkinter import *
from tkinter import messagebox
from tkinter import filedialog
from cv2 import dft
from pytube import YouTube

def createwidgits():
    # creating a button
    link_label = Label(root, text ='Paste URL: ', bg="#999999")
    # placing the label
    link_label.grid(row=1, column=0, pady=10, padx=10)

    # creating a entry point
    root.link_text = Entry(root, width=60 , textvariable=video_link)
    # placing the point
    root.link_text.grid(row=1, column=1,pady=10, padx=10)

    # creating a destination label
    destination_label = Label(root, text ='Destination: ', bg="#999999")
    # placing the label
    destination_label.grid(row=2, column=0, pady=10, padx=10)

    # creating a destination box
    root.destination_label = Entry(root, width=60 , textvariable=Download_path)
    # placing the box
    root.destination_label.grid(row=2, column=1,pady=10, padx=10)

    # create a browse button
    browse_but = Button(root, text="Browse", command=browse, width=10, bg="#ffffff")
    # place the button
    browse_but.grid(row=2, column=2, pady=10, padx=10)

    # create a download button
    download_but = Button(root, text="Download", command=download_video, width=15, bg="#ff0000")
    # place the button
    download_but.grid(row=3, column=1, pady=3, padx=3)

# define browse button function
def browse():
    # set directory
    downlaod_dir = filedialog.askdirectory(initialdir="Downlaod path")
    Download_path.set(downlaod_dir)

# create youtube video download function
def download_video():

    url = video_link.get()
    folder = Download_path.get()
    get_video = YouTube(url)
    get_stream = get_video.streams.first()
    get_stream.download(folder)

    messagebox.showinfo("Your video downloaded successfully")

# creating an instance
root = tk.Tk()

# size of the window
root.geometry("600x120")
root.resizable(False,False)
# name of the window
root.title("downloader")
# colors of the window
root.config(background="#999999")

video_link = StringVar()
Download_path = StringVar()

createwidgits()

root.mainloop()

Ausgabe:

Letzte Worte

Wir haben zwei Methoden besprochen, mit denen Sie Youtube-Videos mit Python in jeder Qualität in weniger als einer Minute auf Ihren Computer herunterladen können. Der erste ist ein befehlszeilenbasierter Downloader und eine weitere GUI-basierte Version. Dies kann sehr nützlich sein, um Online-Vortragsvideos, Online-Tutorials, Online-Konferenzvideos, Online-Konferenzvorträge, Online-Schulungskurse und vieles mehr herunterzuladen. Sie können den Code kopieren und in Ihr Terminal einfügen.

Hier sind einige nützliche Tutorials, die Sie lesen können: