KoD 0.8.1
- riorganizzate le impostazioni - aggiunte descrizioni tag qualità su cb01 (presto anche sugli altri) - aggiunto il supporto alle serie di polpotv - fixato server mystream - fix Rinumerazione per episodi Nuovi
This commit is contained in:
+33
-29
@@ -1,6 +1,15 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
|
||||
import urllib
|
||||
import sys
|
||||
PY3 = False
|
||||
if sys.version_info[0] >= 3: PY3 = True; unicode = str; unichr = chr; long = int
|
||||
|
||||
if PY3:
|
||||
#from future import standard_library
|
||||
#standard_library.install_aliases()
|
||||
import urllib.parse as urllib # Es muy lento en PY2. En PY3 es nativo
|
||||
else:
|
||||
import urllib # Usamos el nativo de PY2 que es más rápido
|
||||
|
||||
from core import httptools
|
||||
from core import scrapertools
|
||||
@@ -11,8 +20,11 @@ def test_video_exists(page_url):
|
||||
if 'googleusercontent' in page_url:
|
||||
return True, "" # desactivada verificación pq se encalla!
|
||||
|
||||
response = httptools.downloadpage(page_url, cookies=False, headers={"Referer": page_url})
|
||||
if "no+existe" in response.data:
|
||||
response = httptools.downloadpage(page_url, headers={"Referer": page_url})
|
||||
global page
|
||||
page = response
|
||||
|
||||
if "no+existe" in response.data or 'no existe.</p>' in response.data:
|
||||
return False, "[gvideo] El video no existe o ha sido borrado"
|
||||
if "Se+ha+excedido+el" in response.data:
|
||||
return False, "[gvideo] Se ha excedido el número de reproducciones permitidas"
|
||||
@@ -28,50 +40,42 @@ def test_video_exists(page_url):
|
||||
|
||||
|
||||
def get_video_url(page_url, user="", password="", video_password=""):
|
||||
logger.info()
|
||||
video_urls = []
|
||||
urls = []
|
||||
streams =[]
|
||||
logger.debug('page_url: %s'%page_url)
|
||||
|
||||
if 'googleusercontent' in page_url:
|
||||
|
||||
response = httptools.downloadpage(page_url, follow_redirects = False, cookies=False, headers={"Referer": page_url})
|
||||
url=response.headers['location']
|
||||
if "set-cookie" in response.headers:
|
||||
try:
|
||||
cookies = ""
|
||||
cookie = response.headers["set-cookie"].split("HttpOnly, ")
|
||||
for c in cookie:
|
||||
cookies += c.split(";", 1)[0] + "; "
|
||||
data = response.data.decode('unicode-escape')
|
||||
data = urllib.unquote_plus(urllib.unquote_plus(data))
|
||||
headers_string = "|Cookie=" + cookies
|
||||
except:
|
||||
headers_string = ""
|
||||
else:
|
||||
headers_string = ""
|
||||
url = page_url
|
||||
headers_string = httptools.get_url_headers(page_url, forced=True)
|
||||
|
||||
quality = scrapertools.find_single_match (url, '.itag=(\d+).')
|
||||
|
||||
if not quality:
|
||||
quality = '59'
|
||||
streams.append((quality, url))
|
||||
|
||||
else:
|
||||
response = httptools.downloadpage(page_url, cookies=False, headers={"Referer": page_url})
|
||||
cookies = ""
|
||||
cookie = response.headers["set-cookie"].split("HttpOnly, ")
|
||||
for c in cookie:
|
||||
cookies += c.split(";", 1)[0] + "; "
|
||||
data = response.data.decode('unicode-escape')
|
||||
|
||||
data = page.data
|
||||
bloque= scrapertools.find_single_match(data, 'url_encoded_fmt_stream_map(.*)')
|
||||
|
||||
if bloque:
|
||||
data = bloque
|
||||
|
||||
data = data.decode('unicode-escape', errors='replace')
|
||||
data = urllib.unquote_plus(urllib.unquote_plus(data))
|
||||
headers_string = "|Cookie=" + cookies
|
||||
url_streams = scrapertools.find_single_match(data, 'url_encoded_fmt_stream_map=(.*)')
|
||||
streams = scrapertools.find_multiple_matches(url_streams,
|
||||
|
||||
headers_string = httptools.get_url_headers(page_url, forced=True)
|
||||
streams = scrapertools.find_multiple_matches(data,
|
||||
'itag=(\d+)&url=(.*?)(?:;.*?quality=.*?(?:,|&)|&quality=.*?(?:,|&))')
|
||||
|
||||
itags = {'18': '360p', '22': '720p', '34': '360p', '35': '480p', '37': '1080p', '43': '360p', '59': '480p'}
|
||||
for itag, video_url in streams:
|
||||
if not video_url in urls:
|
||||
video_url += headers_string
|
||||
video_urls.append([itags[itag], video_url])
|
||||
video_urls.append([itags.get(itag, ''), video_url])
|
||||
urls.append(video_url)
|
||||
video_urls.sort(key=lambda video_urls: int(video_urls[0].replace("p", "")))
|
||||
|
||||
|
||||
Reference in New Issue
Block a user