mirror of
https://codeberg.org/polarisfm/youtube-dl
synced 2024-11-27 02:44:33 +01:00
TVI/IOL extractor
supports live streams
This commit is contained in:
parent
f02700a1fa
commit
ef53dab788
@ -7,6 +7,10 @@ try:
|
||||
except ImportError:
|
||||
_LAZY_LOADER = False
|
||||
from .extractors import *
|
||||
from .iol import (
|
||||
IOLIE,
|
||||
IOLStreamIE
|
||||
)
|
||||
|
||||
_ALL_CLASSES = [
|
||||
klass
|
||||
|
82
youtube_dl/extractor/iol.py
Normal file
82
youtube_dl/extractor/iol.py
Normal file
@ -0,0 +1,82 @@
|
||||
# coding: utf-8
|
||||
from __future__ import unicode_literals
|
||||
|
||||
from .common import InfoExtractor
|
||||
|
||||
import re
|
||||
|
||||
|
||||
class IOLIE(InfoExtractor):
|
||||
_VALID_URL = r'http://(tviplayer|www\.tvi24)\.iol\.pt/.*/(?P<id>[0-9a-f]{24})[/0-9]*$'
|
||||
_TESTS = [{
|
||||
'url': 'http://tviplayer.iol.pt/programa/euromilhoes/53c6b3153004dc006243b07b/video/55f878f90cf203f8b03cea6d',
|
||||
'md5': 'a9b3e3630201401fc3b8099d9d689191',
|
||||
'info_dict': {
|
||||
'id': '55f878f90cf203f8b03cea6d',
|
||||
'ext': 'mp4',
|
||||
'title': u'Euromilhões - 15 de setembro de 2015',
|
||||
# 'tumbnail': 'http://www.iol.pt/multimedia/oratvi/multimedia/imagem/id/55f87a280cf2e6961770f01f',
|
||||
'description': u'Com Mónica Jardim'
|
||||
}
|
||||
}, {
|
||||
'url': 'http://tviplayer.iol.pt/programa/isso-e-tudo-muito-bonito-mas/55f30f2e0cf2a6b037fc1f2f/video/55f730c40cf23fa665481b18',
|
||||
'md5': 'fb7231bf3a12eee731c56eaa6ecb5474',
|
||||
'info_dict': {
|
||||
'id': '55f730c40cf23fa665481b18',
|
||||
'ext': 'mp4',
|
||||
'title': u'Isso é tudo muito bonito, mas: Concatena, filho, concatena',
|
||||
# 'tumbnail': 'http://www.iol.pt/multimedia/oratvi/multimedia/imagem/id/55f737330cf23fa665481b2d',
|
||||
'description': u'Quando os adversários unem perspectivas.'
|
||||
}
|
||||
}, {
|
||||
'url': 'http://www.tvi24.iol.pt/videos/passos-criacao-de-emprego-e-facto-muito-importante/55f816640cf2e6961770ef7a/2',
|
||||
'md5': '49d4da9901f00e72a127ff4b635f69ee',
|
||||
'info_dict': {
|
||||
'id': '55f816640cf2e6961770ef7a',
|
||||
'ext': 'mp4',
|
||||
'title': u'Passos: criação de emprego é facto muito importante',
|
||||
# 'tumbnail': 'http://www.iol.pt/multimedia/oratvi/multimedia/imagem/id/55f8180e0cf21413dfb1d96d/',
|
||||
'description': u'PM sublinha que é o nível mais elevado de há vários anos'
|
||||
}
|
||||
}]
|
||||
|
||||
def _real_extract(self, url):
|
||||
video_id = self._match_id(url)
|
||||
webpage = self._download_webpage(url, video_id)
|
||||
|
||||
title = self._og_search_title(webpage)
|
||||
title = re.sub(r' \| TVI Player$', '', title, re.IGNORECASE)
|
||||
|
||||
description = self._og_search_description(webpage)
|
||||
thumbnail = self._og_search_thumbnail(webpage)
|
||||
m3u8_url = self._html_search_regex(r'''videoUrl:\s*'([^']+\.m3u8[^']*)'\s*,''', webpage, 'm3u8 playlist')
|
||||
formats = self._extract_m3u8_formats(m3u8_url, video_id, ext='mp4')
|
||||
|
||||
return {
|
||||
'id': video_id,
|
||||
'title': title,
|
||||
'description': description,
|
||||
'thumbnail': thumbnail,
|
||||
'formats': formats
|
||||
}
|
||||
|
||||
|
||||
class IOLStreamIE(IOLIE):
|
||||
_VALID_URL = r'http://tviplayer\.iol\.pt/direto/(?P<id>\S+)'
|
||||
_TESTS = [{
|
||||
'url': 'http://tviplayer.iol.pt/direto/TVI',
|
||||
'info_dict': {
|
||||
'id': 'TVI',
|
||||
'ext': 'mp4',
|
||||
'title': 're:^Direto TVI',
|
||||
'description': u'A TVI ao pé de si. Sempre.',
|
||||
'is_live': True,
|
||||
}
|
||||
}]
|
||||
|
||||
def _real_extract(self, url):
|
||||
ret = IOLIE._real_extract(self, url)
|
||||
ret['is_live'] = True
|
||||
ret['title'] = self._live_title(ret['title'])
|
||||
|
||||
return ret
|
Loading…
Reference in New Issue
Block a user