plugins.zeenews: new plugin for https://zeenews.india.com/live-tv

This commit is contained in:
back-to 2020-04-12 08:33:04 +02:00 committed by Forrest
parent 5378c4f5ea
commit 0e0df62543
3 changed files with 52 additions and 0 deletions

View File

@ -299,6 +299,7 @@ zattoo - zattoo.com Yes Yes
- www.vtxtv.ch
- www.1und1.tv
zdf_mediathek zdf.de Yes Yes Streams may be geo-restricted to Germany.
zeenews zeenews.india.com Yes No
zengatv zengatv.com Yes No
zhanqi zhanqi.tv Yes No
======================= ==================== ===== ===== ===========================

View File

@ -0,0 +1,31 @@
import logging
import re
from streamlink.plugin import Plugin
from streamlink.stream import HLSStream
log = logging.getLogger(__name__)
class ZeeNews(Plugin):
_url_re = re.compile(r'https?://zeenews\.india\.com/live-tv')
HLS_URL = 'https://z5ams.akamaized.net/zeenews/index.m3u8{0}'
TOKEN_URL = 'https://useraction.zee5.com/token/live.php'
@classmethod
def can_handle_url(cls, url):
return cls._url_re.match(url) is not None
def get_title(self):
return 'Zee News'
def _get_streams(self):
res = self.session.http.get(self.TOKEN_URL)
token = self.session.http.json(res)['video_token']
log.debug('video_token: {0}'.format(token))
for s in HLSStream.parse_variant_playlist(self.session, self.HLS_URL.format(token)).items():
yield s
__plugin__ = ZeeNews

View File

@ -0,0 +1,20 @@
import unittest
from streamlink.plugins.zeenews import ZeeNews
class TestPluginZeeNews(unittest.TestCase):
def test_can_handle_url(self):
should_match = [
'https://zeenews.india.com/live-tv',
'https://zeenews.india.com/live-tv/embed',
]
for url in should_match:
self.assertTrue(ZeeNews.can_handle_url(url), url)
def test_can_handle_url_negative(self):
should_not_match = [
'https://example.com/index.html',
]
for url in should_not_match:
self.assertFalse(ZeeNews.can_handle_url(url), url)