11-07-2017, Saat: 15:14
Arkadaşlar iyi günler,
Benim adım Hüseyin. Umutrc arkadaşımızın yönlendirmesi üzerine bende foruma üye oldum. Forumu biraz inceleme fırsatım oldu gayet hoş muhabbetlerin döndüğü bir yer. Bende nasıl dahil olurum diye düşünürken dedim ufak çaplı bişey geliştireyim hem başkaları faydalansın hem de bir nebze de katkım olsun dedim. Script şimdilik sadece Linux sistemler için. Hikayesi şöyle: Yolda sokakta yürürken, kulaklık ile yapılan ropörtajları dinlemek istiyordum. Bilişim alanında oluyor genelde bu ropörtajlar ve youtube’a listeler halinde yükleniyor. Malumunuz bu ropörtajların hepside video oluyor. Bunları topluca ses dosyasına çevirmek istedim. Biraz uğraştım ve başlangıç seviyesinde bir şeyler çıktı ortaya umarım beğenirsiniz :D
Programın işleyişi basit. Çevirmek istediğimiz dosyanın veya dosyaların olduğu yerde scripti çalıştırıyoruz. Tek dosya olduğunda dosya adını girmemiz lazım ama çoklu dosyalarda sadece parametreyi kullanmak yetiyor. İlk versiyon biraz basit ama çoklu dosyalar için baya kullanışlı oldu :)
KOD -> paste.ubuntu.com
GitHub -> converter.py
Benim adım Hüseyin. Umutrc arkadaşımızın yönlendirmesi üzerine bende foruma üye oldum. Forumu biraz inceleme fırsatım oldu gayet hoş muhabbetlerin döndüğü bir yer. Bende nasıl dahil olurum diye düşünürken dedim ufak çaplı bişey geliştireyim hem başkaları faydalansın hem de bir nebze de katkım olsun dedim. Script şimdilik sadece Linux sistemler için. Hikayesi şöyle: Yolda sokakta yürürken, kulaklık ile yapılan ropörtajları dinlemek istiyordum. Bilişim alanında oluyor genelde bu ropörtajlar ve youtube’a listeler halinde yükleniyor. Malumunuz bu ropörtajların hepside video oluyor. Bunları topluca ses dosyasına çevirmek istedim. Biraz uğraştım ve başlangıç seviyesinde bir şeyler çıktı ortaya umarım beğenirsiniz :D
Programın işleyişi basit. Çevirmek istediğimiz dosyanın veya dosyaların olduğu yerde scripti çalıştırıyoruz. Tek dosya olduğunda dosya adını girmemiz lazım ama çoklu dosyalarda sadece parametreyi kullanmak yetiyor. İlk versiyon biraz basit ama çoklu dosyalar için baya kullanışlı oldu :)
KOD -> paste.ubuntu.com
GitHub -> converter.py
Kod:
#!/usr/bin/env python3
""" Video to Audio Encoder
Required program
- ffmpeg(You can use this code (sudo apt-get install ffmpeg) on terminal or
use this program (python3 converter.py -f) )
"""
__author__ = "Hüseyin Altunkaynak"
__copyright__ = "Copyright 2017, Hüseyin Altunkaynak"
__license__ = "GNU General Public License"
__version__ = "1.0.0"
__email__ = "huseyin.altunkaynak51@gmail.com"
import subprocess
import argparse
import os
import sys
sort_of_file=["mp4", "mov", "m4a", "3gp", "3g2", "mj2"]
currFileSort="mp4"
def is_file(fileName):
#dosya türünün desteklenip desteklenmediğini kontrol için
fileName=fileName.split(".")
for den in sort_of_file:
if den == fileName[-1]:
global currFileSort
currFileSort = den
return ".".join(fileName[0:-1])
else:
print("Lütfen desteklenen dosya türlerini giriniz.")
for ben in sort_of_file:
print(ben)
sys.exit()
class VideoToAudio(object):
"""Video To Audio Encoder"""
def __init__(self):
self.currPath = os.getcwd()
def app_install(self):
subprocess.run(["sudo", "apt-get", "install", "ffmpeg"])
def converter(self, fileName):
pathWay=self.currPath+"/"+fileName+"."+currFileSort
subprocess.run(["ffmpeg", "-i", pathWay, self.currPath+"/"+fileName+".mp3"])
def multipleConvert(self):
files=os.listdir()
for sen in files:
sen = sen.split(".")
for cen in sort_of_file:
if cen == sen[-1]:
currFileSort = cen
self.converter(".".join(sen[0:-1]))
else:
continue
if __name__ == '__main__':
vta = VideoToAudio()
parser = argparse.ArgumentParser(description="Video to Audio Encoder",
epilog="Programı çalıştırmak için sistemde ffmpeg yüklü olmalıdır.\
Yüklü değil ise programı -f parametresi ile çalıştırın. Toplu dosya dönüşümü için kullanılacak olan -m \
parametresini kullanırken programı dosyaların olduğu dizinde çalıştırın.")
parser.add_argument("-f", "--ffmpeg", help="ffmpeg paketini sisteme yüklemek için. Tek parametre olarak kullanılır.", action="store_true")
parser.add_argument("-s", "--single", help="Tekli dosya dönüşümü için bulunulan dizindeki dosya adı", metavar="FILE")
parser.add_argument("-m", "--multiple", help="Çoklu dosya dönüşümü için dosyaların bulunduğu klasörde çalıştırın.\
Tek parametre olarak kullanılır.", action="store_true")
args = parser.parse_args()
if args.ffmpeg:
vta.app_install()
if args.single:
vta.converter(is_file(args.single))
if args.multiple:
vta.multipleConvert()