123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123 |
- # -*- coding: UTF-8 -*-
-
- import re,os,sys
- import json
- try:
- import util
- except:
- pp = os.path.dirname(os.path.abspath(__file__))
- sys.path.insert(0,os.sep.join(pp.split(os.sep)[:-1]))
- import util
- import urllib2
- import requests
- try:
- from requests.packages.urllib3.exceptions import InsecureRequestWarning
- requests.packages.urllib3.disable_warnings(InsecureRequestWarning)
- except:
- pass
- #from aadecode import AADecoder
-
- __author__ = 'ivars777'
- __name__ = 'cloudsany' if __name__ <> "__main__" else __name__
-
-
- def supports(url):
- # https://cloudsany.com/i/b4kt66gm2sw4
- return re.search(r'cloudsany\.\w+/\w/.+', url) is not None
-
-
- #INFO_URL = API_BASE_URL + '/streaming/info'
-
- def resolve(url):
- headers = {
- 'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:39.0) Gecko/20100101 Firefox/39.0',
- 'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
- 'Accept-Charset': 'ISO-8859-1,utf-8;q=0.7,*;q=0.3',
- 'Accept-Encoding': 'none',
- 'Accept-Language': 'en-US,en;q=0.8',
- 'Referer': url} # 'Connection': 'keep-alive'
-
- # https://cloudsany.com/i/b4kt66gm2sw4
- m = re.search('cloudsany\.\w+/i/(\w+)', url)
- if not m:
- return stream
- vid = str(m.group(1))
-
- r = requests.get(url, headers=headers)
- if r.status_code <> 200:
- raise Exception("Error getting stream")
- r = r.content
- m = re.search(r"'(https\|.+?jwplayer)'", r)
- if not m:
- print url
- if "File was deleted" in r:
- raise Exception("File was deleted")
- else:
- raise Exception("Can not find stream")
-
- p = m.group(1).split("|")
- p0 = m.group(1)
-
-
- # Subtitles #
- subs = []
- # https://cloudsany.com/subtitles/0w3y7su4c2ko.srt
- # Latvian|label|srt|subtitles
- #url_sub = "https://cloudsany.com/subtitles/%s.%s" % (vid, "srt")
- url_sub = "https://cloudsany.com/subtitles/%s.srt" % vid
- r2 = requests.head(url_sub)
- m = re.search(r"(\w+)\|label\|(\w+)\|(\w+)\|subtitles", p0)
- if r2.status_code == 200 and m:
- sub = {}
- #url_sub = "https://cloudsany.com/subtitles/%s.%s" % (vid, "srt")
- url_title = m.group(1)
- print url_title
- sub["url"] = url_sub
- sub["lang"] = m.group(1)
- sub["name"] = m.group(1)
- sub["type"] = m.group(2)
- subs = [sub]
-
- # Stream URL
- # co|sanii|dl1|file
- m1 = re.search("\|(co)\|(\w*)\|(\w*)\|(\w*)\|", p0)
- # tracks|mp4|video|ut4dluxu56tyll|files
- m2 = re.search(r"tracks\|(\w+)\|(\w+)\|(\w+)\|files", p0)
- # 0://c.b.a/1t/6/1s/1r.1q
- m3 = re.search(r"0://\w+\.\w+\.\w+/\w+/(\d+)/", r)
- if not (m1 and m2 and m3):
- raise Exception("Can not find stream url")
- # https://dl1.sanii.co/files/6/ut4dluxu56tyll/video.mp4
- l1 = list(m1.groups())
- if "" in l1: l1.remove("")
- url = "https://%s.%s.%s/files/%s/%s/%s.%s" % (
- l1[2], l1[1], l1[0], m3.group(1), m2.group(3), m2.group(2), m2.group(1))
- print url
-
- s = util.item()
- s["url"] = url
- s["type"] = util.stream_type(s["url"])
- s["resolver"] = __name__
- #s["lang"] = lang
- s["subs"] = subs
- s["name"] = url
- return [s]
-
-
- if __name__ == "__main__":
-
- from subprocess import call
- url = "https://cloudsany.com/i/b4kt66gm2sw4"
- url = "https://cloudsany.com/i/jqfm2sqwar22" # teorija par visu/SUB
- streams = resolve(url)
- if not streams:
- print "No streams found"
- sys.exit()
-
- for s in streams:
- print s
- from run import player
- player(streams[0]["url"])
- #print streams[0]["url"]
- #call([r"C:\Program Files (x86)\VideoLAN\VLC\vlc.exe",streams[0]["url"]])
- pass
|