Pytube ile YouTube Video İndirme

Sizlere, Pytube yani YouTube’dan video indirme modülünü anlatmaya çalışacağım.

Önce kurulumu yapalım;

pip install pytube3

Kodu yazmaya başlayıp modülü tanıyalım.
Kodu içe aktarma:

from pytube import Youtube

Kullanıcıdan video URL’sini isteyelim:

link = input("Video Linki: ")<br>link = Youtube(link)

Linki modülde tanıtalım, video akışlarını yani çözünürlüklerine bakalım:

stream = link.streams.all()
for i in stream:
    print(i)

Kod çıktısı aşağıdaki gibi olacaktır.

Yalnızca Mp4 olanları filtreleyelim:

stream = link.streams.filter(mime_type="video/mp4").all()
for i in stream:
    print(i)

Kod çıktısı aşağıdaki gibi olacaktır.

Aynı şekilde, akış çıktılarını aldığımız kodları yazarak filtreleyebiliriz.
Örn:

streams.filter(mime_type="video/mp4", res="720p")

Sadece sesli videolu(.mp4) dosyayı filtrelemek için:

streams.filter(progressive=True)

Akış da bulunan ilk videoyu indirelim ve adını yazalım:
Belirttiğiniz dosyaya kaydetmek için;
download(‘/Desktop/videolar/’, filename=title) şeklinde belirtebilirsiniz.

title = link.player_response['videoDetails']['title']
stream=link.streams.filter(mime_type="video/mp4").first().download(filename=title)

Video açıklaması, izlenmesi ve kanal sahibi gibi bilgileri ekrana yazdıralım:

print(f"Video Başlığı: {title}")
print(f"Video Sahibi: {link.author}")
print(f"İzlenme Sayısı: {link.views}")
print(f"Video Açıklaması: {link.description}")
print(f"Video Uzunluğu Saniye: {link.length}")
print(f"Video Önizleme Resmi: {link.thumbnail_url}")

Tüm kodlar:

from pytube import Youtube

link = input(f"Video Linki: ")
link = Youtube(link)

title = link.player_response['videoDetails']['title']
stream=link.streams.filter(mime_type="video/mp4").first().download(filename=title)
print(f"Video Başlığı: {title}")
print(f"Video Sahibi: {link.author}")
print(f"İzlenme Sayısı: {link.views}")
print(f"Video Açıklaması: {link.description}")
print(f"Video Uzunluğu Saniye: {link.length}")
print(f"Video Önizleme Resmi: {link.thumbnail_url}")

Modül hakkında diğer ipuçları:

  • Video erişime açık değilse modül hata verecektir.
  • Ses dosyaları .mp3 olarak indirilmiyor. .webm olarak indirir, mp3 uzantısına çevirebilirsiniz.
  • Tüm videolarda ses yoktur. Genelde 480p,360p de ses olur. HD video indirmek için, 720p videoyu ve ses dosyasını ayrı indirip ikisini birleştirebilirsiniz. (ffmpeg işinizi görecektir.)
  • Filtreleme yaparken .first() komutu ilk akışı, .all() ise tüm akışları gösterir.
  • Modülün tam işlevine bu linkten bakabilirsiniz.
    https://pytube.io/en/latest/