1
0
Fork 0
mirror of https://github.com/ytdl-org/youtube-dl.git synced 2024-11-18 16:26:23 +00:00

added support for full offer

This commit is contained in:
Marcin Biczan 2023-04-06 21:25:00 +02:00
parent b08dc56f46
commit 4b6bef45b5

View file

@ -254,8 +254,15 @@ class TVPWebsiteIE(InfoExtractor):
class TVPappIE(InfoExtractor): class TVPappIE(InfoExtractor):
IE_NAME = 'tvp:app' IE_NAME = 'tvp:app'
_VALID_URL = r'https://vod.tvp.pl/[^/]+/[^,]+,(?P<series_id>[0-9]+)/[^,]+,[^,]+,(?P<id>[0-9]+)' # https://vod.tvp.pl/seriale,18/korona-krolow-jagiellonowie-odcinki,292227/odcinek-37,S01E37,392532
_TESTS = [{ # https://vod.tvp.pl/programy,88/korona-krolow-taka-historia-odcinki,283653/odcinek-1,S02E01,386064
# https://vod.tvp.pl/filmy-dokumentalne,163/jurek,376503
# https://vod.tvp.pl/dla-dzieci,24/zubr-pompik-odcinki,282014/odcinek-1,S01E01,319853
# https://vod.tvp.pl/teatr-telewizji,202/barwy-uczuc,392420
# https://vod.tvp.pl/filmy-fabularne,136/rozlam,390638
_VALID_URL = r'https://vod.tvp.pl/(seriale|filmy-fabularne|programy|filmy-dokumentalne|dla-dzieci|teatr-telewizji|informacje-i-publicystyka),[0-9]+/([^,]+,[0-9]+/)?[^,]+,([^,]+,)?(?P<id>[0-9]+)'
_TESTS = [
{
# series # series
'url': 'https://vod.tvp.pl/seriale,18/korona-krolow-jagiellonowie-odcinki,292227/odcinek-37,S01E37,392532', 'url': 'https://vod.tvp.pl/seriale,18/korona-krolow-jagiellonowie-odcinki,292227/odcinek-37,S01E37,392532',
'info_dict': { 'info_dict': {
@ -272,7 +279,62 @@ class TVPappIE(InfoExtractor):
'skip_download': True, 'skip_download': True,
'format': 'dash-f1-v1-x3', 'format': 'dash-f1-v1-x3',
} }
}] },
{
# programs
'url': 'https://vod.tvp.pl/programy,88/korona-krolow-taka-historia-odcinki,283653/odcinek-1,S02E01,386064',
'info_dict': {
'id': '386064',
'ext': 'mp4',
'series_id': 283653,
'title': 'Korona królów. Taka historia... - Episode 1 - odc. 1 Jagiełło: życie po Jadwidze',
'description': 'Jogaiła był Wielkim Księciem Litewskim, synem Olgierda i wnukiem Giedymina. W 1386 roku został polskim królem, bowiem został mężem polskiej monarchini Jadwigi Andegaweńskiej. Dwa trony i dwóch władców mających pełnię władzy. Kiedy w 1399 roku Jadwiga zmarła, najważniejsi polscy możni za potwierdzenie praw Jagiełły do korony zapragnęli więcej wpływów na władzę, w następstwie czego Władysław Jagiełło postanowił zrzec się tronu i wrócić na Litwę. Zaczęły się rozmowy i negocjacje. Obu stronom zależało, żeby król pozostał królem. Możni zaproponowali Jagielle kandydatkę na nową żonę Annę Cylejską. Dziewczyna była wnuczką Kazimierza Wielkiego, więc uznano ją za prawowitą dziedziczkę polskiego tronu, czym miała wzmacniać rolę Jagiełły. Przeprowadzono powtórną elekcję i ustanowiono warunki współpracy z Litwą.',
'thumbnail': r're:^https?://.*\.jpg$',
'episode_number': 1,
},
'params': {
'skip_download': True,
'format': 'dash-f1-v1-x3',
}
},
{
# filmy-dokumentalne
'url': 'https://vod.tvp.pl/filmy-dokumentalne,163/jurek,376503',
'info_dict': {
'id': '376503',
'ext': 'mp4',
'series_id': None,
'title': 'Jurek',
'description': 'Obraz człowieka, który pnie się do góry w sensie dosłownym, ale też metaforycznym i symbolicznym. Od socjalistycznego pracownika, po gwiazdę międzynarodowych mediów, od człowieka, który wspina się bez pieniędzy i sprzętu, po pełnoprawnego konkurenta Reinholda Messnera w walce o zdobycie Korony Himalajów i Karakorum. Skromnego, wyrazistego, kochającego góry. Rozmowy z rodziną i przyjaciółmi, archiwalia, zdjęcia, nagrania, fragmenty programów telewizyjnych i wywiadów składają się na portret całego środowiska himalaistów lat 80. To również obraz czasów, w jakich żyli ciężkich i barwnych jednocześnie, kiedy idealizm miał większą wartość niż sława.',
'thumbnail': r're:^https?://.*\.jpg$',
'episode_number': None,
},
'params': {
'skip_download': True,
'format': 'dash-f1-v1-x3',
}
},
{
# dla-dzieci
'url': 'https://vod.tvp.pl/dla-dzieci,24/zubr-pompik-odcinki,282014/odcinek-1,S01E01,319853',
'info_dict': {
'id': '319853',
'ext': 'mp4',
'series_id': 282014,
'title': 'Żubr Pompik - Episode 1 - Odc. 1 Duże i małe',
'description': 'W głębinach wielkiej, dzikiej, zielonej puszczy mieszka żubr Pompik. Jest niewielki, do tego nie tak silny, szybki i skoczny, jak jego rówieśnicy. Początkowo bardzo się tym martwi. A co, jeżeli nigdy nie urośnie? Odkrywa jednak, że ma wiele innych zalet! Jest najbardziej ciekawskim ze zwierząt w puszczy. Interesuje go wszystko, co dzieje się dookoła. Nie ma takiej leśnej tajemnicy, której Pompik by nie rozwiązał dzięki uważnej obserwacji, cierpliwości i zadawaniu mnóstwa pytań.',
'thumbnail': r're:^https?://.*\.jpg$',
'episode_number': 1,
},
'params': {
'skip_download': True,
'format': 'dash-f1-v1-x3',
}
},
]
def _real_extract(self, url): def _real_extract(self, url):
video_id = self._match_id(url) video_id = self._match_id(url)
@ -282,6 +344,8 @@ class TVPappIE(InfoExtractor):
_details = self._download_json(url % video_id, video_id, 'Downloading details') _details = self._download_json(url % video_id, video_id, 'Downloading details')
_playlist = self._download_json(url_p % video_id, video_id, 'Downloading playlist') _playlist = self._download_json(url_p % video_id, video_id, 'Downloading playlist')
# import json
# print(json.dumps(_playlist, indent = 2))
formats = [] formats = []
formats.extend(self._extract_mpd_formats(_playlist['sources']['DASH'][0]['src'], video_id, mpd_id='dash', fatal=False)) formats.extend(self._extract_mpd_formats(_playlist['sources']['DASH'][0]['src'], video_id, mpd_id='dash', fatal=False))
@ -290,10 +354,10 @@ class TVPappIE(InfoExtractor):
'formats': formats, 'formats': formats,
'duraton': _details['duration'], 'duraton': _details['duration'],
'series_id': _details['season']['serial']['id'], 'series_id': _details['season']['serial']['id'] if 'season' in _details else None,
'title': _details['statisticsParameters']['gemiusVideo']['fullTitle'], 'title': _details['statisticsParameters']['gemiusVideo']['fullTitle'],
'description': _details['description'], 'description': _details['description'],
'thumbnail': _details['images']['16x9'][0]['url'], 'thumbnail': _details['images']['16x9'][0]['url'],
'episode_number': _details['number'], 'episode_number': _details['number'] if 'number' in _details else None,
} }