Kod @iskeletor (hakan) abiye aittir.
http://s3.dosya.tc/server7/ex3uhy/qpytho..._.zip.html
indirin zipten cikarin.indir.py yi com.hipipal.qpyplus/scripts e atin.daha sonra indireceginiz filmin linkini kopyalayin ve kodu calistirin tamamdir
Hakan abiye tekrardan tesekkurler

PC için exe:
https://yadi.sk/d/tOPXcMQZ3Jq5gW
Güncelleme: 05.06.2017
http://s3.dosya.tc/server7/ex3uhy/qpytho..._.zip.html
indirin zipten cikarin.indir.py yi com.hipipal.qpyplus/scripts e atin.daha sonra indireceginiz filmin linkini kopyalayin ve kodu calistirin tamamdir

Hakan abiye tekrardan tesekkurler


PC için exe:
https://yadi.sk/d/tOPXcMQZ3Jq5gW
Güncelleme: 05.06.2017
PHP Kod:
# -*- coding: utf8 -*-
import re, json, os, time, cookielib, urllib2,sys
from urlparse import urlparse
from urllib2 import quote
import platform
if platform.platform().startswith("Linux"):
if platform.platform().find("Ubuntu") > -1:
pano = raw_input("Link giriniz: ")
d = "mailRUindir"
else:
d = '/sdcard/mailRUindir/'
import androidhelper
droid=androidhelper.Android()
pano=droid.getClipboard().result
else:
d = 'mailRUindir/'
from Tkinter import *
import ttk
root=Tk()
root.title("Link Girin")
root.resizable(width=FALSE, height=FALSE)
pgen = 500
pyuks = 100
ekrangen = root.winfo_screenwidth()
x = (ekrangen - pgen) / 2
root.geometry("%dx%d+%d+%d"%(pgen, pyuks, x, 200))
def clp(event=None):
global pano
pano = entry.get()
root.destroy()
entry = Entry(root, width=80)
entry.pack(pady=15)
ttk.Style().configure("prk.TButton", padding=6, relief="flat", background="#EBE6E6", foreground="#347D2B", font=("DejaVuSans", 11, "bold"))
tara = ttk.Button(root, text="Tamam", style='prk.TButton', command=clp, width=22)
tara.pack()
entry.insert(0, root.clipboard_get())
root.bind("<Return>", clp)
mainloop()
if not pano.startswith("http://") or pano.startswith("https://"):
pano="http://"+pano
print pano
cj = cookielib.CookieJar()
opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cj))
opener.addheaders = [ ('User-Agent', 'Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.6; en-US; rv:1.9.2.11) Gecko/20101012 Firefox/3.6.11'), ]
urllib2.install_opener(opener)
if not os.path.isdir(d):
os.mkdir(d)
br = 1024 * 1024 # 1 MB = 1024 KB = 1024*1024 B
birim = float(br)
bufsize = 1024 # buffer boyutu
def exit(msg):
print msg
raise SystemExit()
def indir(url, dosya):
existSize = 0
if os.path.exists(dosya):
outputFile = open(dosya, 'ab')
existSize = os.path.getsize(dosya)
else:
outputFile = open(dosya, 'wb')
try:
remote = urlparse(url)
h=urllib2.Request(url)
if existSize > 0:
h.add_header('Range', 'bytes=%d-' % existSize)
print 'Range', 'bytes=%d-' % existSize
r=urllib2.urlopen(h)
#print r.info()
errcode = r.getcode()
print errcode
errmsg = r.msg
print errmsg
headers=r.info().getheaders
#print 'Response: %d (%s)' % (errcode, errmsg)
except:
try:
r.close()
del r
except:
pass
outputFile.close()
del outputFile
time.sleep(5)
print "Tekrar deneniyor.."
indir(url, dosya)
return
if errcode == 200 or errcode == 206:
print('istek basarili, indirmeye baslaniyor...')
clength = int(headers('Content-Length')[0]) + existSize
print 'indirilen boyut:', existSize / birim, 'MB'
print 'Toplam boyut:', clength / birim, 'MB'
baskaSize = existSize/br*br + br
while existSize < clength:
try:
temp = r.read(bufsize)
if not temp: break
outputFile.write(temp)
existSize += bufsize
if existSize == baskaSize:
print existSize/br, 'MB %', float(existSize)/clength*100
baskaSize += br
except:
time.sleep(10)
break
if existSize < clength:
r.close()
del r
outputFile.close()
del outputFile
print 'indirme devam ettiriliyor...'
indir(url, dosya)
else:
exit('indirme tamamlandi')
elif errcode == 502 or errcode == 503 or errmsg == 'Unknown':
r.close()
del r
outputFile.close()
del outputFile
print 'Ag hatasi, 5 saniye sonra yeniden deneniyor...'
print 'Eger baglantida sorun yoksa sorun mail.ru dan kaynaklaniyordur.'
print 'Bu durumda sadece indirmeye baslamasini bekleyin'
time.sleep(5)
indir(url, dosya)
elif errcode == 416:
## HTTP error 416 = Request Range not Satisiable
exit('Dosya zaten indirildi veya ayni adda boyutu daha buyuk baska dosya var.')
else:
exit('Bilinmeyen hata, durduruluyor...')
def linkbul():
#a=urllib2.Request(pano)
#a=urllib2.urlopen(pano).read()
try:
try:
try:
try:
url="http://videoapi.my.mail.ru/videos/bk/"+pano.split("videoapi.my.mail.ru/videos/embed/bk/")[1].split(".html")[0]+".json"
print "mail.ru'da bulundu.."
except:
url="http://videoapi.my.mail.ru/videos/mail/"+pano.split("videoapi.my.mail.ru/videos/embed/mail/")[1].split(".html")[0]+".json"
print "mail.ru'da bulundu.."
except:
try:
url="http://videoapi.my.mail.ru/videos/bk/"+pano.split("my.mail.ru/bk/")[1].split(".html")[0]+".json"
print "mail.ru'da bulundu.."
except:
url="http://videoapi.my.mail.ru/videos/mail/"+pano.split("my.mail.ru/mail/")[1].split(".html")[0]+".json"
print "mail.ru'da bulundu.."
except:
url="http://ok.ru/dk?cmd=videoPlayerMetadata&mid="+pano.split('ok.ru/videoembed/')[1].split('"')[0]
print "ok.ru'da bulundu.."
return json.loads(urllib2.urlopen(url).read())
except:
print "hata.. linki dogru kopyaladiginizdan\nya da filmin mail.ru/ok.ru'ya yuklendiginden emin olun"
sys.exit()
def basla():
j=linkbul()
try:
dosya = (j['meta']['title'] + '.mp4').encode("utf-8")
except:
dosya = (j['movie']['title'] + '.mp4').encode("utf-8")
print 'Dosya adi:', dosya
syc = 1
print 'Kalite numarasi sec\n(Eger yarim kalan bir filmse ayni kaliteyi\nsectiginizden emin olun): '
for x in j['videos']:
try:
print syc, x['key']
except:
print syc, x['name']
syc += 1
try:
kno = int(raw_input('Secimini yap: '))
except:
exit('Gecersiz secim.')
url = j['videos'][kno-1]['url']
print url
indir(url,d+dosya)
basla()