Youtube'dan video veya audio dosyaları indirme ve bu dosyaları farklı formatlardaki dosyalara dönüştürme

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.

4 Beğeni

Benimde aklımda vardı bu tarz birşey eline sağlık

Rica ederim, asıl modülleri yazan kişilerin ellerine sağlık, güle güle kullanın.

Merhaba, mp3 formatında dosya indirmek için basit bir bash scripti yeterli youtube-dl varken.

 ~ cat /usr/bin/mp3downloader 
#!/bin/bash

last = $(pwd)

cd $HOME/Music

youtube-dl --extract-audio --audio-format mp3 --audio-quality 0 "$@"

cd $last
 ~ 
1 Beğeni

Modullere bagimli olmak her zaman hosuma gitmesede ellerine saglik ugrasmissin

Bazı küçük işler için modüllere bağımlı olmamak iyi bir şey olsa da karışık işler için modülleri kullanmak, tekerleği icat etmemek adına gerekli bence.