Bu uygulamayı yapma amacım Ytpro botunun kanaldaki tüm videoları görmemesi ve benim Python dilini bilgilerim arasına katmak istememdir. Yazılım videoların kimliğini bir listboxa ekliyor ve linkleri bir txt dosyasına yazıyor. Burdan kopyalayıp rahatlıkla ytpro botuna ekleyip indirtip yükletebilirsiniz.
Python sürümü: 2.7.x
Kullanımı çok kolay kanal kimliğini Entry bileşenine giriyorsunuz çek diyorsunuz o bütün linkleri alıp txt dosyasına ekliyor.
Örneğin BBC News - YouTube bu kanaldaki kimlikten kastım bbcnews
Python sürümü: 2.7.x
Kullanımı çok kolay kanal kimliğini Entry bileşenine giriyorsunuz çek diyorsunuz o bütün linkleri alıp txt dosyasına ekliyor.
Örneğin BBC News - YouTube bu kanaldaki kimlikten kastım bbcnews
Kod:
# -*- coding:utf-8 -*-
#!/usr/bin/env python
from Tkinter import *
import re,urllib2
pencere = Tk()
pencere.title("YouTube Kanal Video Listesi")
pencere.geometry("200x200+15+100")
pencere.resizable(width=FALSE, height=FALSE)
kanalKimlikYazi = Label(pencere,text="Kanal kimliği:")
kanalKimlikYazi.grid(row=0)
kanalKimlik = Entry(pencere)
kanalKimlik.grid(row=0,column=1)
def videolariAl():
dosya = open('videolar.txt','w')
id = kanalKimlik.get()
sayfa = 1
toplam = 0
while(True):
yazi = "http://gdata.youtube.com/feeds/users/" + id + "/uploads?max-results=50&start-index=" + str(sayfa);
req = urllib2.Request(yazi)
req.add_unredirected_header('User-Agent', 'Mozilla/5.0 (Windows NT 6.3; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/37.0.2049.0 Safari/537.36')
baglan = urllib2.urlopen(req)
oku = baglan.read()
sayi = 0
for i in re.finditer(b'watch\?v=(.*)&',oku):
if "&" not in i.group(1):
if i.group(1) not in list(liste.get(0,END)):
liste.insert(END,i.group(1))
dosya.write("http://www.youtube.com/watch?v=" + i.group(1) + "\n")
sayi = sayi + 1
toplam = toplam + 1
print str(toplam) + " \n"
if sayi != 50:
break
else:
sayfa = sayfa + 50
dosya.close()
kanalVideolariCek = Button(text="Çek", command=videolariAl)
kanalVideolariCek.grid(row=1, column=0,columnspan=2,sticky=W+E+N+S)
liste = Listbox()
liste.grid(row=2,column=0,columnspan=2,sticky=W+E+N+S)
mainloop()