Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
validate.union({
"base": validate.all(
validate.xml_find(".//meta"),
validate.xml_element(attrib={"base": validate.text}),
validate.get("base")
),
"streams": validate.all(
validate.xml_findall(".//switch/*"),
[
validate.all(
validate.getattr("attrib"),
{
"src": validate.text,
"system-bitrate": validate.all(
validate.text,
validate.transform(int),
),
validate.optional("width"): validate.all(
validate.text,
validate.transform(int)
)
}
)
]
)
})
)
@classmethod
def can_handle_url(cls, url):
return cls.url_re.match(url) is not None
from streamlink.stream import HLSStream
class TV8(Plugin):
"""
Support for the live stream on www.tv8.com.tr
"""
url_re = re.compile(r"https?://www.tv8.com.tr/canli-yayin")
player_config_re = re.compile(r'''file:\s*"(.*?)"''')
player_config_schema = validate.Schema(
validate.transform(player_config_re.search),
validate.any(
None,
validate.all(
validate.get(1),
validate.url()
)
)
)
@classmethod
def can_handle_url(cls, url):
return cls.url_re.match(url) is not None
def _get_streams(self):
res = self.session.http.get(self.url)
stream_url = self.player_config_schema.validate(res.text)
if stream_url:
return HLSStream.parse_variant_playlist(self.session, stream_url)
validate.transform(state_re.search),
validate.any(
None,
validate.all(
validate.get(1),
validate.transform(parse_json),
validate.transform(partial(search_dict, key="urlVideo"))
)
)
)
stream_schema = validate.Schema(
validate.transform(parse_json),
{"sources": [
validate.all({
"src": validate.url(),
validate.optional("type"): validate.text
})
]}, validate.get("sources"))
@classmethod
def can_handle_url(cls, url):
return cls.url_re.match(url) is not None
def __init__(self, url):
# must be HTTPS
super(AtresPlayer, self).__init__(update_scheme("https://", url))
def _get_streams(self):
api_urls = self.session.http.get(self.url, schema=self.channel_id_schema)
for api_url in api_urls:
log.debug("API URL: {0}".format(api_url))
from streamlink.stream import HDSStream, HLSStream, RTMPStream
from streamlink.utils import rtmpparse
STREAM_API_URL = "https://playapi.mtgx.tv/v3/videos/stream/{0}"
_swf_url_re = re.compile(r"data-flashplayer-url=\"([^\"]+)\"")
_player_data_re = re.compile(r"window.fluxData\s*=\s*JSON.parse\(\"(.+)\"\);")
_stream_schema = validate.Schema(
validate.any(
None,
validate.all({"msg": validate.text}),
validate.all({
"streams": validate.all(
{validate.text: validate.any(validate.text, int, None)},
validate.filter(lambda k, v: isinstance(v, validate.text))
)
}, validate.get("streams"))
)
)
class Viasat(Plugin):
"""Streamlink Plugin for Viasat"""
_iframe_re = re.compile(r"""[^"']+)["'].+allowfullscreen""")
_image_re = re.compile(r"""\d+)/[^/]+\.jpg""")
_url_re = re.compile(r"""https?://(?:www\.)?
(?:
juicyplay\.dk
|
_url_re = re.compile(r"""(?x)https?://(?:www\.)?
(?:
(?:
(atvavrupa)\.tv
|
(atv|a2tv|ahaber|aspor|minikago|minikacocuk|anews)\.com\.tr
)/webtv/(?:live-broadcast|canli-yayin)
|
sabah\.com\.tr/(apara)/canli-yayin
)""")
_hls_url = "https://trkvz-live.ercdn.net/{channel}/{channel}.m3u8"
_token_url = "https://securevideotoken.tmgrup.com.tr/webtv/secure"
_token_schema = validate.Schema(validate.all(
{
"Success": True,
"Url": validate.url(),
},
validate.get("Url"))
)
@classmethod
def can_handle_url(cls, url):
return cls._url_re.match(url) is not None
def _get_streams(self):
url_m = self._url_re.match(self.url)
domain = url_m.group(1) or url_m.group(2) or url_m.group(3)
# remap the domain to channel
channel = {"atv": "atvhd",
"ahaber": "ahaberhd",
"apara": "aparahd",
"aspor": "asporhd",
from __future__ import print_function
import re
from streamlink.plugin import Plugin
from streamlink.plugin.api import useragents
from streamlink.plugin.api import validate
from streamlink.stream import HLSStream
class RaiPlay(Plugin):
url_re = re.compile(r"https?://(?:www\.)?raiplay\.it/dirette/(\w+)/?")
stream_re = re.compile(r"data-video-url.*?=.*?\"([^\"]+)\"")
stream_schema = validate.Schema(
validate.all(
validate.transform(stream_re.search),
validate.any(
None,
validate.all(validate.get(1), validate.url())
)
)
)
@classmethod
def can_handle_url(cls, url):
return cls.url_re.match(url) is not None
def _get_streams(self):
channel = self.url_re.match(self.url).group(1)
self.logger.debug("Found channel: {0}", channel)
CONST_AMF_GATEWAY_LOCATION = '/tools/amf.php'
CONST_AMF_GATEWAY_PARAM = 'x-country'
CONST_DEFAULT_COUNTRY_CODE = 'en'
CONST_HEADERS = {}
CONST_HEADERS['User-Agent'] = useragents.CHROME
url_re = re.compile(r"(http(s)?://)?(\w{2}.)?(bongacams\.com)/([\w\d_-]+)")
amf_msg_schema = validate.Schema({
"status": "success",
"userData": {
"username": validate.text
},
"localData": {
"videoServerUrl": validate.text
},
"performerData": {
"username": validate.text,
}
})
class bongacams(Plugin):
@classmethod
def can_handle_url(self, url):
return url_re.match(url)
def _get_streams(self):
match = url_re.match(self.url)
stream_page_scheme = 'https'
stream_page_domain = match.group(4)
_url_re = re.compile(r"""
https://www\.kingkong\.com\.tw/
(?:
video/(?P[0-9]+G[0-9A-Za-z]+)|
(?P[0-9]+)
)
""", re.VERBOSE)
_room_schema = validate.Schema(
{
"data": {
"live_info": {
"live_status": int,
"stream_items": [{
"title": validate.text,
"video": validate.any('', validate.url(
scheme="https",
path=validate.endswith(".flv")
))
}]
}
}
},
validate.get("data")
)
_vod_schema = validate.Schema(
{
"data": {
"live_info": {
"video": validate.text