Merhaba arkadaşlar,
Modüllerini ben yazmadım ama Pafy kütüphanesi yardımıyla YouTube’dan video veya audio indirme ve ffmpy kütüphanesi yardımıyla da indirilen bu videoları veya audioları başka formattaki dosyalara dönüştürmekle alakalı basit bir program üzerinde çalışıyordum. Program şu aşamada sorunsuz bir şekilde çalışıyor. Sonra henüz bu modülleri kullanmamış forum kullanıcıları da denesinler belki işlerine yarar düşüncesiyle burada paylaşmak istedim.
Adım 1: Önce gerekli olan modülleri Python kütüphanesine ekliyoruz:
pip install pafy
pip install youtube_dl
pip install ffmpy
Adım 2: ffmpy modülü sadece dönüştürme işlemleri için gerekli olan örtüleri barındırır. Dönüştürme işlemleri için codec kütüphanesini de indirmek gerekir. Şu adresten işletim sisteminize göre uygun olan ffmpeg kütüphanesini bilgisayarınıza indiriniz. İndireceğiniz dosya “Get the packages” çerçevesindeki paket dosyalarından birisi olmalıdır.
Adım 3: Sıkıştırılmış kütüphaneyi çıkarttıktan sonra klasör ismini kısa bir kelime olacak şekilde değiştirin. Bu kütüphanenin yol olarak Ortam Değişkenlerinde tanıtılması gerekir. Ortam Değişkenlerine yol olarak tanıtma şeklinin birden fazla yöntemi var. Ben, komut arayüzünden ekleme yöntemini kullandım, siz isterseniz kendi bildiğiniz şekilde de yapabilirsiniz. (Bilgisayarımda ffmpeg kütühanesi c: dizininin içinde olduğu için aşağıdaki komutları yazdım. Dosyanız hangi dizinde bulunuyorsa, o dizinin adresini yazın.
Adım 4: Bütün bu işlemler sorunsuz bir şekilde yapıldıysa artık indirme ve dönüştürme işlemlerini gerçekleştirecek Python kodlarımıza geçebiliriz:
[code]import pafy
from ffmpy import FFmpeg
def convert(input_name,output_name):
ff = FFmpeg(
inputs={"{}".format(input_name): None},
outputs={"{}".format(output_name): None}
)
ff.run()
def downloadAndConvertAudio(dosya_ismi):
with open("{}.txt".format(dosya_ismi), “r”) as file:
for link in file.readlines():
video = pafy.new(link)
bestaudio = video.getbestaudio()
convert(bestaudio.download(), “{}.mp3”.format(video.title))
def downloadVideo(dosya_ismi):
with open("{}.txt".format(dosya_ismi), “r”) as file:
for link in file.readlines():
video = pafy.new(link)
streams = video.streams
for s in streams:
if s.resolution == “640x360” and s.extension == “mp4”:
s.download() [/code]
Yukarıdaki kodlara göre, not defterine indirmek istediğiniz video veya audio dosyalarının youtube adreslerini, farklı satırlara yazıyoruz. Daha sonra not defterinin ismini çağıracağımız fonksiyonun parametre kısmına string olarak veriyoruz.
Fonksiyonları istediğiniz gibi, başka türlü de tanımlayabilirsiniz. Dilerseniz Pafy kütüphanesinin daha farklı fonksiyonlarını kullanarak programı geliştirebilirsiniz.
Ayrıca içe aktarılmış ffmpy kütüphanesiyle çalışan convert fonksiyonunun güzel olan diğer bir işlevi ise video dosyalarını gif dosyalarına dönüştürebilmesidir. Yukarıda ise m4a formatındaki audio dosyalarını mp3’e çeviren bir fonksiyon yazıldı sadece.