1
1
mirror of https://github.com/ytdl-org/youtube-dl synced 2024-11-06 23:27:00 +01:00

[telequebec:live] Add extractor (closes #15688)

This commit is contained in:
Sergey M․ 2018-02-24 06:16:42 +07:00
parent 2d17c63140
commit 300148b48a
No known key found for this signature in database
GPG Key ID: 2C393E0F18A9236D
2 changed files with 44 additions and 1 deletions

View File

@ -1049,7 +1049,10 @@ from .telebruxelles import TeleBruxellesIE
from .telecinco import TelecincoIE from .telecinco import TelecincoIE
from .telegraaf import TelegraafIE from .telegraaf import TelegraafIE
from .telemb import TeleMBIE from .telemb import TeleMBIE
from .telequebec import TeleQuebecIE from .telequebec import (
TeleQuebecIE,
TeleQuebecLiveIE,
)
from .teletask import TeleTaskIE from .teletask import TeleTaskIE
from .telewebion import TelewebionIE from .telewebion import TelewebionIE
from .testurl import TestURLIE from .testurl import TestURLIE

View File

@ -47,3 +47,43 @@ class TeleQuebecIE(InfoExtractor):
media_data.get('durationInMilliseconds'), 1000), media_data.get('durationInMilliseconds'), 1000),
'ie_key': 'LimelightMedia', 'ie_key': 'LimelightMedia',
} }
class TeleQuebecLiveIE(InfoExtractor):
_VALID_URL = r'https?://zonevideo\.telequebec\.tv/(?P<id>endirect)'
_TEST = {
'url': 'http://zonevideo.telequebec.tv/endirect/',
'info_dict': {
'id': 'endirect',
'ext': 'mp4',
'title': 're:^Télé-Québec - En direct [0-9]{4}-[0-9]{2}-[0-9]{2} [0-9]{2}:[0-9]{2}$',
'is_live': True,
},
'params': {
'skip_download': True,
},
}
def _real_extract(self, url):
video_id = self._match_id(url)
m3u8_url = None
webpage = self._download_webpage(
'https://player.telequebec.tv/Tq_VideoPlayer.js', video_id,
fatal=False)
if webpage:
m3u8_url = self._search_regex(
r'm3U8Url\s*:\s*(["\'])(?P<url>(?:(?!\1).)+)\1', webpage,
'm3u8 url', default=None, group='url')
if not m3u8_url:
m3u8_url = 'https://teleqmmd.mmdlive.lldns.net/teleqmmd/f386e3b206814e1f8c8c1c71c0f8e748/manifest.m3u8'
formats = self._extract_m3u8_formats(
m3u8_url, video_id, 'mp4', m3u8_id='hls')
self._sort_formats(formats)
return {
'id': video_id,
'title': self._live_title('Télé-Québec - En direct'),
'is_live': True,
'formats': formats,
}