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/