playview + servidores nuevos + fixes

This commit is contained in:
Unknown
2018-06-27 16:38:27 -03:00
parent 5945011c2f
commit cbc2804651
15 changed files with 845 additions and 3 deletions
+4 -1
View File
@@ -3,6 +3,7 @@
from core import httptools
from core import scrapertools
from platformcode import logger
from lib import jsunpack
def test_video_exists(page_url):
@@ -16,8 +17,10 @@ def test_video_exists(page_url):
def get_video_url(page_url, user="", password="", video_password=""):
logger.info("(page_url='%s')" % page_url)
data = httptools.downloadpage(page_url).data
packed = scrapertools.find_single_match(data, "text/javascript'>(.*?)\s*</script>")
unpacked = jsunpack.unpack(packed)
video_urls = []
videos = scrapertools.find_multiple_matches(data, 'file:"([^"]+).*?label:"([^"]+)')
videos = scrapertools.find_multiple_matches(unpacked, 'file:"([^"]+).*?label:"([^"]+)')
for video, label in videos:
video_urls.append([label + " [clipwatching]", video])
logger.info("Url: %s" %videos)
+42
View File
@@ -0,0 +1,42 @@
{
"active": true,
"find_videos": {
"ignore_urls": [],
"patterns": [
{
"pattern": "https://cloudvideo.tv/embed-([a-z0-9]+).html",
"url": "https://cloudvideo.tv/embed-\\1.html"
}
]
},
"free": true,
"id": "cloudvideo",
"name": "cloudvideo",
"settings": [
{
"default": false,
"enabled": true,
"id": "black_list",
"label": "Incluir en lista negra",
"type": "bool",
"visible": true
},
{
"default": 0,
"enabled": true,
"id": "favorites_servers_list",
"label": "Incluir en lista de favoritos",
"lvalues": [
"No",
"1",
"2",
"3",
"4",
"5"
],
"type": "list",
"visible": false
}
],
"thumbnail": "https://cloudvideo.tv/static/img/logo5.png"
}
+43
View File
@@ -0,0 +1,43 @@
# Conector Cloudvideo By Alfa development Group
# --------------------------------------------------------
import re
from core import httptools
from core import scrapertools
from lib import jsunpack
from platformcode import logger
def test_video_exists(page_url):
logger.info("(page_url='%s')" % page_url)
data = httptools.downloadpage(page_url)
if data.code == 404:
return False, "[Cloud] El archivo no existe o ha sido borrado"
return True, ""
def get_video_url(page_url, premium=False, user="", password="", video_password=""):
logger.info("url=" + page_url)
video_urls = []
data = httptools.downloadpage(page_url).data
data = re.sub(r'"|\n|\r|\t|&nbsp;|<br>|\s{2,}', "", data)
enc_data = scrapertools.find_single_match(data, "type='text/javascript'>(.*?)</script>")
dec_data = jsunpack.unpack(enc_data)
sources = scrapertools.find_single_match(dec_data, "sources:\[(.*?)]")
patron = "{file:(.*?)}"
matches = re.compile(patron, re.DOTALL).findall(sources)
scrapertools.printMatches(matches)
for url in matches:
quality = 'm3u8'
video_url = url
if 'label' in url:
url = url.split(',')
video_url = url[0]
quality = url[1].replace('label:','')
video_urls.append(['cloudvideo [%s]' % quality, video_url])
return video_urls
+42
View File
@@ -0,0 +1,42 @@
{
"active": true,
"find_videos": {
"ignore_urls": [],
"patterns": [
{
"pattern": "https://www.filevideo.net/embed-(?:embed-|)([A-z0-9]+)",
"url": "http://filevideo.net/embed-\\1.html"
}
]
},
"free": true,
"id": "filevideo",
"name": "filevideo",
"settings": [
{
"default": false,
"enabled": true,
"id": "black_list",
"label": "Incluir en lista negra",
"type": "bool",
"visible": true
},
{
"default": 0,
"enabled": true,
"id": "favorites_servers_list",
"label": "Incluir en lista de favoritos",
"lvalues": [
"No",
"1",
"2",
"3",
"4",
"5"
],
"type": "list",
"visible": false
}
],
"thumbnail": "https://s15.postimg.cc/b7jj9dbbf/filevideo.png"
}
+42
View File
@@ -0,0 +1,42 @@
# -*- coding: utf-8 -*-
from core import httptools
from core import scrapertools
from lib import jsunpack
from platformcode import logger
def test_video_exists(page_url):
logger.info("(page_url='%s')" % page_url)
data = httptools.downloadpage(page_url).data
if "Not Found" in data or "File was deleted" in data:
return False, "[Filevideo] El fichero no existe o ha sido borrado"
return True, ""
def get_video_url(page_url, premium=False, user="", password="", video_password=""):
logger.info("url=" + page_url)
data = httptools.downloadpage(page_url).data
enc_data = scrapertools.find_single_match(data, "type='text/javascript'>(eval.*?)\s*</script>")
dec_data = jsunpack.unpack(enc_data)
video_urls = []
media_urls = scrapertools.find_multiple_matches(dec_data, '\{file\s*:\s*"([^"]+)",label\s*:\s*"([^"]+)"\}')
for media_url, label in media_urls:
ext = scrapertools.get_filename_from_url(media_url)[-4:]
video_urls.append(["%s %sp [filevideo]" % (ext, label), media_url])
video_urls.reverse()
m3u8 = scrapertools.find_single_match(dec_data, '\{file\:"(.*?.m3u8)"\}')
if m3u8:
title = video_urls[-1][0].split(" ", 1)[1]
video_urls.insert(0, [".m3u8 %s" % title, m3u8])
for video_url in video_urls:
logger.info("%s - %s" % (video_url[0], video_url[1]))
return video_urls
+42
View File
@@ -0,0 +1,42 @@
{
"active": true,
"find_videos": {
"ignore_urls": [],
"patterns": [
{
"pattern": "https://upvid.co/embed-([a-z0-9]+).html",
"url": "https://upvid.co/embed-\\1.html"
}
]
},
"free": true,
"id": "upvid",
"name": "upvid",
"settings": [
{
"default": false,
"enabled": true,
"id": "black_list",
"label": "Incluir en lista negra",
"type": "bool",
"visible": true
},
{
"default": 0,
"enabled": true,
"id": "favorites_servers_list",
"label": "Incluir en lista de favoritos",
"lvalues": [
"No",
"1",
"2",
"3",
"4",
"5"
],
"type": "list",
"visible": false
}
],
"thumbnail": "https://s15.postimg.cc/gz0tee0gb/zt_Oi_E6_S-_400x400.jpg"
}
+83
View File
@@ -0,0 +1,83 @@
# -*- coding: utf-8 -*-
# --------------------------------------------------------
# Conector UpVID By Alfa development Group
# --------------------------------------------------------
import re
import urllib
from core import httptools
from core import scrapertools
from platformcode import logger
import sys, os
import re, base64
from lib.aadecode import decode as aadecode
def test_video_exists(page_url):
logger.info("(page_url='%s')" % page_url)
data = httptools.downloadpage(page_url)
if data.code == 404:
return False, "[upvid] El archivo no existe o ha sido borrado"
return True, ""
def get_video_url(page_url, premium = False, user = "", password = "", video_password = ""):
logger.info("url=" + page_url)
video_urls = []
headers = {'referer': page_url}
for i in range(0, 3):
data = httptools.downloadpage(page_url, headers=headers).data
data = re.sub(r'"|\n|\r|\t|&nbsp;|<br>|\s{2,}', "", data)
if '<input type=hidden' in data:
break
else:
page_url = scrapertools.find_single_match(data, "iframe src=(.*?) scrolling")
# logger.debug(data)
# decodificar función para obtener función y clave
# ------------------------------------------------
code = re.findall('<script>\s*゚ω゚(.*?)</script>', data, flags=re.DOTALL)[0]
text_decode = aadecode(code)
funcion, clave = re.findall("func\.innerHTML = (\w*)\('([^']*)', ", text_decode, flags=re.DOTALL)[0]
# decodificar javascript en campos html hidden
# --------------------------------------------
oculto = re.findall('<input type=hidden value=([^ ]+) id=func', data, flags=re.DOTALL)[0]
funciones = resuelve(clave, base64.b64decode(oculto))
oculto = re.findall('<input type=hidden value=([^ ]+) id=code', data, flags=re.DOTALL)[0]
codigo = resuelve(clave, base64.b64decode(oculto))
url, type = scrapertools.find_single_match(funciones, "setAttribute\('src', '(.*?)'\);\s.*?type', 'video/(.*?)'")
video_urls.append(['upvid [%s]' % type ,url])
return video_urls
def resuelve(r, o):
a = '';
n = 0
e = range(256)
for f in range(256):
n = (n + e[f] + ord(r[(f % len(r))])) % 256
t = e[f];
e[f] = e[n];
e[n] = t
f = 0;
n = 0
for h in range(len(o)):
f = (f + 1) % 256
n = (n + e[f]) % 256
t = e[f];
e[f] = e[n];
e[n] = t
a += chr(ord(o[h]) ^ e[(e[f] + e[n]) % 256])
return a
+42
View File
@@ -0,0 +1,42 @@
{
"active": true,
"find_videos": {
"ignore_urls": [],
"patterns": [
{
"pattern": "https://vidzella.me/e/([a-zA-Z0-9]+)",
"url": "https://vidzella.me/e/\\1"
}
]
},
"free": true,
"id": "vidzella",
"name": "vidzella",
"settings": [
{
"default": false,
"enabled": true,
"id": "black_list",
"label": "Incluir en lista negra",
"type": "bool",
"visible": true
},
{
"default": 0,
"enabled": true,
"id": "favorites_servers_list",
"label": "Incluir en lista de favoritos",
"lvalues": [
"No",
"1",
"2",
"3",
"4",
"5"
],
"type": "list",
"visible": false
}
],
"thumbnail": "https://s15.postimg.cc/albqao5pn/vidzella.png"
}
+33
View File
@@ -0,0 +1,33 @@
# Conector Vidzella By Alfa development Group
# --------------------------------------------------------
import re
from core import httptools
from platformcode import logger
def test_video_exists(page_url):
logger.info("(page_url='%s')" % page_url)
data = httptools.downloadpage(page_url)
if data.code == 404:
return False, "[Vidzella] El archivo no existe o ha sido borrado"
return True, ""
def get_video_url(page_url, premium=False, user="", password="", video_password=""):
logger.info("url=" + page_url)
video_urls = []
data = httptools.downloadpage(page_url).data
data = re.sub(r'"|\n|\r|\t|&nbsp;|<br>|\s{2,}', "", data)
logger.debug(data)
patron = "src=([^ ]+) type='.*?/(.*?)'"
matches = re.compile(patron, re.DOTALL).findall(data)
for url, type in matches:
video_urls.append(['vidzella %s' % type, url])
return video_urls
+42
View File
@@ -0,0 +1,42 @@
{
"active": true,
"find_videos": {
"ignore_urls": [],
"patterns": [
{
"pattern": "https://vivo.sx/([a-zA-Z0-9]+)",
"url": "https://vivo.sx/\\1"
}
]
},
"free": true,
"id": "vivo",
"name": "vivo",
"settings": [
{
"default": false,
"enabled": true,
"id": "black_list",
"label": "Incluir en lista negra",
"type": "bool",
"visible": true
},
{
"default": 0,
"enabled": true,
"id": "favorites_servers_list",
"label": "Incluir en lista de favoritos",
"lvalues": [
"No",
"1",
"2",
"3",
"4",
"5"
],
"type": "list",
"visible": false
}
],
"thumbnail": "https://s15.postimg.cc/oiyhtpdqj/vivo.png"
}
+39
View File
@@ -0,0 +1,39 @@
# Conector Vivo By Alfa development Group
# --------------------------------------------------------
import re
import base64
from core import httptools
from core import scrapertools
from platformcode import logger
def test_video_exists(page_url):
logger.info("(page_url='%s')" % page_url)
data = httptools.downloadpage(page_url)
if data.code == 404:
return False, "[Vivo] El archivo no existe o ha sido borrado"
return True, ""
def get_video_url(page_url, premium=False, user="", password="", video_password=""):
logger.info("url=" + page_url)
video_urls = []
data = httptools.downloadpage(page_url).data
data = re.sub(r'"|\n|\r|\t|&nbsp;|<br>|\s{2,}', "", data)
enc_data = scrapertools.find_single_match(data, "Core.InitializeStream \('(.*?)'\)")
logger.debug(enc_data)
dec_data = base64.b64decode(enc_data)
logger.debug(dec_data)
for url in eval(dec_data):
video_urls.append(['vivo', url])
return video_urls
@@ -6,6 +6,10 @@
{
"pattern": "watchvideo.us/(?:embed-|)([A-z0-9]+)",
"url": "http://watchvideo.us/embed-\\1.html"
},
{
"pattern": "watchvideo17.us/(?:embed-|)([A-z0-9]+)",
"url": "http://watchvideo.us/embed-\\1.html"
}
]
},
+5 -2
View File
@@ -2,6 +2,7 @@
from core import httptools
from core import scrapertools
from lib import jsunpack
from platformcode import logger
@@ -20,15 +21,17 @@ def get_video_url(page_url, premium=False, user="", password="", video_password=
logger.info("url=" + page_url)
data = httptools.downloadpage(page_url).data
enc_data = scrapertools.find_single_match(data, "type='text/javascript'>(eval.*?)\s*</script>")
dec_data = jsunpack.unpack(enc_data)
video_urls = []
media_urls = scrapertools.find_multiple_matches(data, '\{file\s*:\s*"([^"]+)",label\s*:\s*"([^"]+)"\}')
media_urls = scrapertools.find_multiple_matches(dec_data, '\{file\s*:\s*"([^"]+)",label\s*:\s*"([^"]+)"\}')
for media_url, label in media_urls:
ext = scrapertools.get_filename_from_url(media_url)[-4:]
video_urls.append(["%s %sp [watchvideo]" % (ext, label), media_url])
video_urls.reverse()
m3u8 = scrapertools.find_single_match(data, '\{file\:"(.*?.m3u8)"\}')
m3u8 = scrapertools.find_single_match(dec_data, '\{file\:"(.*?.m3u8)"\}')
if m3u8:
title = video_urls[-1][0].split(" ", 1)[1]
video_urls.insert(0, [".m3u8 %s" % title, m3u8])