import os
import urllib.request
import urllib.parse
import re
import codecs,http.client,random
import hashlib
import json
from xml.dom.minidom import parse, parseString
def login (mail, pas):
global vk
global cookie
res = urllib.request.urlopen('http://login.vk.com/?act=login&email='+mail+'&pass='+pas+'&expire=&vk=')
res= res.read().decode()
#print(res)
if re.search(' value=\'',res)!=None:
print(res)
s = re.search(r"name='s' value='(.*?)' \/>",res)
sid = s.group(1)
print(sid)
cookie = 'remixap=1; remixlang=0; remixchk=5; remixsid='+sid
vk = urllib.request.build_opener()
vk.addheaders = [('cookie', cookie)]
else:
cookie=0
return cookie
s=login('Тут было мыло','А тут пароль')#Авторизация
for i in os.listdir('E:\\Фильмы\\Dr.House Season I'):
print('E:\\Фильмы\\Dr.House Season I\\'+i)
data=open('E:\\Фильмы\\Dr.House Season I\\'+i,'rb').read().decode('latin-1')
print('0')
data='''
------------ei4gL6ae0GI3ae0KM7ae0ae0ae0gL6
Content-Disposition: form-data; name="Filename"
trololo.avi
------------ei4gL6ae0GI3ae0KM7ae0ae0ae0gL6
Content-Disposition: form-data; name="video_file"; filename="trololo.avi"
Content-Type: application/octet-stream
%s
------------ei4gL6ae0GI3ae0KM7ae0ae0ae0gL6
Content-Disposition: form-data; name="video_file"
Submit Query
------------ei4gL6ae0GI3ae0KM7ae0ae0ae0gL6--
''' % (data)
api='1895617' #id приложения
secret = 'bszTIcIkzk' #secret key
#api='1967034'#id приложения
#secret = '0D4ajwn4STyFbCMZDSpA' #secret key
res = vk.open('http://vkontakte.ru/feed.php').read().decode('cp1251')
res = re.split('[\=,\,]+',res)
vid = res[1]#парсим id
print(vid)
sig=vid+'api_id='+api+'method=video.savev=2.0'+secret
sig=hashlib.md5(sig.encode()).hexdigest()
print('Get url to upload')
link='http://api.vkontakte.ru/api.php?api_id='+api+'&method=video.save&v=2.0&sig='+sig
res=vk.open(link).read().decode()#Получаем url для загрузки
#print(res)
dom1 = parseString(res)
print(res)
dom1=dom1.getElementsByTagName("upload_url")[0]
link=dom1.childNodes[0].data
print(link)
headers = {"Content-type": "multipart/form-data; boundary=----------ei4gL6ae0GI3ae0KM7ae0ae0ae0gL6","Accept": "text/*",'Cookie':s,"User-Agent": "Shockwave Flash"}
link=re.split('[\/]+',link)
print(link)
conn = http.client.HTTPConnection(link[1])
conn.request("POST", "/"+link[2], data, headers)
response = conn.getresponse()
c = response.msg
res=response.read().decode()#загружаем
print(res)
data.close()
Тестировал на видюхах по 5-15 секунд (1-3 МБ) - все работало великолепно. Решил запустить с видео 350+ MБ, и ни в какую.. Строку (data=open('E:\\Фильмы\\Dr.House Season I\\'+i,'rb').read().decode('latin-1')) он выполняет, а вот дальше…
Traceback (most recent call last):
File "C:\Python31\vkontakte\work.py", line 54, in <module>
''' % (data)
MemoryError