mirror of
https://gitea.eponym.info/Mirrors/youtube-dl
synced 2025-08-22 06:57:10 +00:00
Compare commits
9 Commits
a25d03d7cb
...
8e953dcbb1
Author | SHA1 | Date | |
---|---|---|---|
|
8e953dcbb1 | ||
|
f4afb9a6a8 | ||
|
d5b8cf093c | ||
|
5c6e84c0ff | ||
|
1aaee908b9 | ||
|
b2d9fd9c9f | ||
|
bc2f83b95e | ||
|
85de33b04e | ||
|
7dfd966848 |
6
.github/ISSUE_TEMPLATE/1_broken_site.md
vendored
6
.github/ISSUE_TEMPLATE/1_broken_site.md
vendored
@ -18,7 +18,7 @@ title: ''
|
|||||||
|
|
||||||
<!--
|
<!--
|
||||||
Carefully read and work through this check list in order to prevent the most common mistakes and misuse of youtube-dl:
|
Carefully read and work through this check list in order to prevent the most common mistakes and misuse of youtube-dl:
|
||||||
- First of, make sure you are using the latest version of youtube-dl. Run `youtube-dl --version` and ensure your version is 2020.12.31. If it's not, see https://yt-dl.org/update on how to update. Issues with outdated version will be REJECTED.
|
- First of, make sure you are using the latest version of youtube-dl. Run `youtube-dl --version` and ensure your version is 2021.01.03. If it's not, see https://yt-dl.org/update on how to update. Issues with outdated version will be REJECTED.
|
||||||
- Make sure that all provided video/audio/playlist URLs (if any) are alive and playable in a browser.
|
- Make sure that all provided video/audio/playlist URLs (if any) are alive and playable in a browser.
|
||||||
- Make sure that all URLs and arguments with special characters are properly quoted or escaped as explained in http://yt-dl.org/escape.
|
- Make sure that all URLs and arguments with special characters are properly quoted or escaped as explained in http://yt-dl.org/escape.
|
||||||
- Search the bugtracker for similar issues: http://yt-dl.org/search-issues. DO NOT post duplicates.
|
- Search the bugtracker for similar issues: http://yt-dl.org/search-issues. DO NOT post duplicates.
|
||||||
@ -26,7 +26,7 @@ Carefully read and work through this check list in order to prevent the most com
|
|||||||
-->
|
-->
|
||||||
|
|
||||||
- [ ] I'm reporting a broken site support
|
- [ ] I'm reporting a broken site support
|
||||||
- [ ] I've verified that I'm running youtube-dl version **2020.12.31**
|
- [ ] I've verified that I'm running youtube-dl version **2021.01.03**
|
||||||
- [ ] I've checked that all provided URLs are alive and playable in a browser
|
- [ ] I've checked that all provided URLs are alive and playable in a browser
|
||||||
- [ ] I've checked that all URLs and arguments with special characters are properly quoted or escaped
|
- [ ] I've checked that all URLs and arguments with special characters are properly quoted or escaped
|
||||||
- [ ] I've searched the bugtracker for similar issues including closed ones
|
- [ ] I've searched the bugtracker for similar issues including closed ones
|
||||||
@ -41,7 +41,7 @@ Add the `-v` flag to your command line you run youtube-dl with (`youtube-dl -v <
|
|||||||
[debug] User config: []
|
[debug] User config: []
|
||||||
[debug] Command-line args: [u'-v', u'http://www.youtube.com/watch?v=BaW_jenozKcj']
|
[debug] Command-line args: [u'-v', u'http://www.youtube.com/watch?v=BaW_jenozKcj']
|
||||||
[debug] Encodings: locale cp1251, fs mbcs, out cp866, pref cp1251
|
[debug] Encodings: locale cp1251, fs mbcs, out cp866, pref cp1251
|
||||||
[debug] youtube-dl version 2020.12.31
|
[debug] youtube-dl version 2021.01.03
|
||||||
[debug] Python version 2.7.11 - Windows-2003Server-5.2.3790-SP2
|
[debug] Python version 2.7.11 - Windows-2003Server-5.2.3790-SP2
|
||||||
[debug] exe versions: ffmpeg N-75573-g1d0487f, ffprobe N-75573-g1d0487f, rtmpdump 2.4
|
[debug] exe versions: ffmpeg N-75573-g1d0487f, ffprobe N-75573-g1d0487f, rtmpdump 2.4
|
||||||
[debug] Proxy map: {}
|
[debug] Proxy map: {}
|
||||||
|
@ -19,7 +19,7 @@ labels: 'site-support-request'
|
|||||||
|
|
||||||
<!--
|
<!--
|
||||||
Carefully read and work through this check list in order to prevent the most common mistakes and misuse of youtube-dl:
|
Carefully read and work through this check list in order to prevent the most common mistakes and misuse of youtube-dl:
|
||||||
- First of, make sure you are using the latest version of youtube-dl. Run `youtube-dl --version` and ensure your version is 2020.12.31. If it's not, see https://yt-dl.org/update on how to update. Issues with outdated version will be REJECTED.
|
- First of, make sure you are using the latest version of youtube-dl. Run `youtube-dl --version` and ensure your version is 2021.01.03. If it's not, see https://yt-dl.org/update on how to update. Issues with outdated version will be REJECTED.
|
||||||
- Make sure that all provided video/audio/playlist URLs (if any) are alive and playable in a browser.
|
- Make sure that all provided video/audio/playlist URLs (if any) are alive and playable in a browser.
|
||||||
- Make sure that site you are requesting is not dedicated to copyright infringement, see https://yt-dl.org/copyright-infringement. youtube-dl does not support such sites. In order for site support request to be accepted all provided example URLs should not violate any copyrights.
|
- Make sure that site you are requesting is not dedicated to copyright infringement, see https://yt-dl.org/copyright-infringement. youtube-dl does not support such sites. In order for site support request to be accepted all provided example URLs should not violate any copyrights.
|
||||||
- Search the bugtracker for similar site support requests: http://yt-dl.org/search-issues. DO NOT post duplicates.
|
- Search the bugtracker for similar site support requests: http://yt-dl.org/search-issues. DO NOT post duplicates.
|
||||||
@ -27,7 +27,7 @@ Carefully read and work through this check list in order to prevent the most com
|
|||||||
-->
|
-->
|
||||||
|
|
||||||
- [ ] I'm reporting a new site support request
|
- [ ] I'm reporting a new site support request
|
||||||
- [ ] I've verified that I'm running youtube-dl version **2020.12.31**
|
- [ ] I've verified that I'm running youtube-dl version **2021.01.03**
|
||||||
- [ ] I've checked that all provided URLs are alive and playable in a browser
|
- [ ] I've checked that all provided URLs are alive and playable in a browser
|
||||||
- [ ] I've checked that none of provided URLs violate any copyrights
|
- [ ] I've checked that none of provided URLs violate any copyrights
|
||||||
- [ ] I've searched the bugtracker for similar site support requests including closed ones
|
- [ ] I've searched the bugtracker for similar site support requests including closed ones
|
||||||
|
@ -18,13 +18,13 @@ title: ''
|
|||||||
|
|
||||||
<!--
|
<!--
|
||||||
Carefully read and work through this check list in order to prevent the most common mistakes and misuse of youtube-dl:
|
Carefully read and work through this check list in order to prevent the most common mistakes and misuse of youtube-dl:
|
||||||
- First of, make sure you are using the latest version of youtube-dl. Run `youtube-dl --version` and ensure your version is 2020.12.31. If it's not, see https://yt-dl.org/update on how to update. Issues with outdated version will be REJECTED.
|
- First of, make sure you are using the latest version of youtube-dl. Run `youtube-dl --version` and ensure your version is 2021.01.03. If it's not, see https://yt-dl.org/update on how to update. Issues with outdated version will be REJECTED.
|
||||||
- Search the bugtracker for similar site feature requests: http://yt-dl.org/search-issues. DO NOT post duplicates.
|
- Search the bugtracker for similar site feature requests: http://yt-dl.org/search-issues. DO NOT post duplicates.
|
||||||
- Finally, put x into all relevant boxes (like this [x])
|
- Finally, put x into all relevant boxes (like this [x])
|
||||||
-->
|
-->
|
||||||
|
|
||||||
- [ ] I'm reporting a site feature request
|
- [ ] I'm reporting a site feature request
|
||||||
- [ ] I've verified that I'm running youtube-dl version **2020.12.31**
|
- [ ] I've verified that I'm running youtube-dl version **2021.01.03**
|
||||||
- [ ] I've searched the bugtracker for similar site feature requests including closed ones
|
- [ ] I've searched the bugtracker for similar site feature requests including closed ones
|
||||||
|
|
||||||
|
|
||||||
|
6
.github/ISSUE_TEMPLATE/4_bug_report.md
vendored
6
.github/ISSUE_TEMPLATE/4_bug_report.md
vendored
@ -18,7 +18,7 @@ title: ''
|
|||||||
|
|
||||||
<!--
|
<!--
|
||||||
Carefully read and work through this check list in order to prevent the most common mistakes and misuse of youtube-dl:
|
Carefully read and work through this check list in order to prevent the most common mistakes and misuse of youtube-dl:
|
||||||
- First of, make sure you are using the latest version of youtube-dl. Run `youtube-dl --version` and ensure your version is 2020.12.31. If it's not, see https://yt-dl.org/update on how to update. Issues with outdated version will be REJECTED.
|
- First of, make sure you are using the latest version of youtube-dl. Run `youtube-dl --version` and ensure your version is 2021.01.03. If it's not, see https://yt-dl.org/update on how to update. Issues with outdated version will be REJECTED.
|
||||||
- Make sure that all provided video/audio/playlist URLs (if any) are alive and playable in a browser.
|
- Make sure that all provided video/audio/playlist URLs (if any) are alive and playable in a browser.
|
||||||
- Make sure that all URLs and arguments with special characters are properly quoted or escaped as explained in http://yt-dl.org/escape.
|
- Make sure that all URLs and arguments with special characters are properly quoted or escaped as explained in http://yt-dl.org/escape.
|
||||||
- Search the bugtracker for similar issues: http://yt-dl.org/search-issues. DO NOT post duplicates.
|
- Search the bugtracker for similar issues: http://yt-dl.org/search-issues. DO NOT post duplicates.
|
||||||
@ -27,7 +27,7 @@ Carefully read and work through this check list in order to prevent the most com
|
|||||||
-->
|
-->
|
||||||
|
|
||||||
- [ ] I'm reporting a broken site support issue
|
- [ ] I'm reporting a broken site support issue
|
||||||
- [ ] I've verified that I'm running youtube-dl version **2020.12.31**
|
- [ ] I've verified that I'm running youtube-dl version **2021.01.03**
|
||||||
- [ ] I've checked that all provided URLs are alive and playable in a browser
|
- [ ] I've checked that all provided URLs are alive and playable in a browser
|
||||||
- [ ] I've checked that all URLs and arguments with special characters are properly quoted or escaped
|
- [ ] I've checked that all URLs and arguments with special characters are properly quoted or escaped
|
||||||
- [ ] I've searched the bugtracker for similar bug reports including closed ones
|
- [ ] I've searched the bugtracker for similar bug reports including closed ones
|
||||||
@ -43,7 +43,7 @@ Add the `-v` flag to your command line you run youtube-dl with (`youtube-dl -v <
|
|||||||
[debug] User config: []
|
[debug] User config: []
|
||||||
[debug] Command-line args: [u'-v', u'http://www.youtube.com/watch?v=BaW_jenozKcj']
|
[debug] Command-line args: [u'-v', u'http://www.youtube.com/watch?v=BaW_jenozKcj']
|
||||||
[debug] Encodings: locale cp1251, fs mbcs, out cp866, pref cp1251
|
[debug] Encodings: locale cp1251, fs mbcs, out cp866, pref cp1251
|
||||||
[debug] youtube-dl version 2020.12.31
|
[debug] youtube-dl version 2021.01.03
|
||||||
[debug] Python version 2.7.11 - Windows-2003Server-5.2.3790-SP2
|
[debug] Python version 2.7.11 - Windows-2003Server-5.2.3790-SP2
|
||||||
[debug] exe versions: ffmpeg N-75573-g1d0487f, ffprobe N-75573-g1d0487f, rtmpdump 2.4
|
[debug] exe versions: ffmpeg N-75573-g1d0487f, ffprobe N-75573-g1d0487f, rtmpdump 2.4
|
||||||
[debug] Proxy map: {}
|
[debug] Proxy map: {}
|
||||||
|
4
.github/ISSUE_TEMPLATE/5_feature_request.md
vendored
4
.github/ISSUE_TEMPLATE/5_feature_request.md
vendored
@ -19,13 +19,13 @@ labels: 'request'
|
|||||||
|
|
||||||
<!--
|
<!--
|
||||||
Carefully read and work through this check list in order to prevent the most common mistakes and misuse of youtube-dl:
|
Carefully read and work through this check list in order to prevent the most common mistakes and misuse of youtube-dl:
|
||||||
- First of, make sure you are using the latest version of youtube-dl. Run `youtube-dl --version` and ensure your version is 2020.12.31. If it's not, see https://yt-dl.org/update on how to update. Issues with outdated version will be REJECTED.
|
- First of, make sure you are using the latest version of youtube-dl. Run `youtube-dl --version` and ensure your version is 2021.01.03. If it's not, see https://yt-dl.org/update on how to update. Issues with outdated version will be REJECTED.
|
||||||
- Search the bugtracker for similar feature requests: http://yt-dl.org/search-issues. DO NOT post duplicates.
|
- Search the bugtracker for similar feature requests: http://yt-dl.org/search-issues. DO NOT post duplicates.
|
||||||
- Finally, put x into all relevant boxes (like this [x])
|
- Finally, put x into all relevant boxes (like this [x])
|
||||||
-->
|
-->
|
||||||
|
|
||||||
- [ ] I'm reporting a feature request
|
- [ ] I'm reporting a feature request
|
||||||
- [ ] I've verified that I'm running youtube-dl version **2020.12.31**
|
- [ ] I've verified that I'm running youtube-dl version **2021.01.03**
|
||||||
- [ ] I've searched the bugtracker for similar feature requests including closed ones
|
- [ ] I've searched the bugtracker for similar feature requests including closed ones
|
||||||
|
|
||||||
|
|
||||||
|
21
ChangeLog
21
ChangeLog
@ -1,3 +1,24 @@
|
|||||||
|
version 2021.01.03
|
||||||
|
|
||||||
|
Extractors
|
||||||
|
* [nrk] Improve series metadata extraction (#27473)
|
||||||
|
+ [nrk] Extract subtitles
|
||||||
|
* [nrk] Fix age limit extraction
|
||||||
|
* [nrk] Improve video id extraction
|
||||||
|
+ [nrk] Add support for podcasts (#27634, #27635)
|
||||||
|
* [nrk] Generalize and delegate all item extractors to nrk
|
||||||
|
+ [nrk] Add support for mp3 formats
|
||||||
|
* [nrktv] Switch to playback endpoint
|
||||||
|
* [vvvvid] Fix season metadata extraction (#18130)
|
||||||
|
* [stitcher] Fix extraction (#20811, #27606)
|
||||||
|
* [acast] Fix extraction (#21444, #27612, #27613)
|
||||||
|
+ [arcpublishing] Add support for arcpublishing.com (#2298, #9340, #17200)
|
||||||
|
+ [sky] Add support for Sports News articles and Brighcove videos (#13054)
|
||||||
|
+ [vvvvid] Extract akamai formats
|
||||||
|
* [vvvvid] Skip unplayable episodes (#27599)
|
||||||
|
* [yandexvideo] Fix extraction for Python 3.4
|
||||||
|
|
||||||
|
|
||||||
version 2020.12.31
|
version 2020.12.31
|
||||||
|
|
||||||
Core
|
Core
|
||||||
|
@ -57,6 +57,7 @@
|
|||||||
- **appletrailers**
|
- **appletrailers**
|
||||||
- **appletrailers:section**
|
- **appletrailers:section**
|
||||||
- **archive.org**: archive.org videos
|
- **archive.org**: archive.org videos
|
||||||
|
- **ArcPublishing**
|
||||||
- **ARD**
|
- **ARD**
|
||||||
- **ARD:mediathek**
|
- **ARD:mediathek**
|
||||||
- **ARDBetaMediathek**
|
- **ARDBetaMediathek**
|
||||||
@ -610,6 +611,7 @@
|
|||||||
- **Npr**
|
- **Npr**
|
||||||
- **NRK**
|
- **NRK**
|
||||||
- **NRKPlaylist**
|
- **NRKPlaylist**
|
||||||
|
- **NRKRadioPodkast**
|
||||||
- **NRKSkole**: NRK Skole
|
- **NRKSkole**: NRK Skole
|
||||||
- **NRKTV**: NRK TV and NRK Radio
|
- **NRKTV**: NRK TV and NRK Radio
|
||||||
- **NRKTVDirekte**: NRK TV Direkte and NRK Radio Direkte
|
- **NRKTVDirekte**: NRK TV Direkte and NRK Radio Direkte
|
||||||
@ -813,12 +815,13 @@
|
|||||||
- **ShowRoomLive**
|
- **ShowRoomLive**
|
||||||
- **Sina**
|
- **Sina**
|
||||||
- **sky.it**
|
- **sky.it**
|
||||||
|
- **sky:news**
|
||||||
|
- **sky:sports**
|
||||||
|
- **sky:sports:news**
|
||||||
- **skyacademy.it**
|
- **skyacademy.it**
|
||||||
- **SkylineWebcams**
|
- **SkylineWebcams**
|
||||||
- **SkyNews**
|
|
||||||
- **skynewsarabia:article**
|
- **skynewsarabia:article**
|
||||||
- **skynewsarabia:video**
|
- **skynewsarabia:video**
|
||||||
- **SkySports**
|
|
||||||
- **Slideshare**
|
- **Slideshare**
|
||||||
- **SlidesLive**
|
- **SlidesLive**
|
||||||
- **Slutload**
|
- **Slutload**
|
||||||
|
@ -12,6 +12,7 @@ from ..utils import (
|
|||||||
ExtractorError,
|
ExtractorError,
|
||||||
int_or_none,
|
int_or_none,
|
||||||
parse_duration,
|
parse_duration,
|
||||||
|
str_or_none,
|
||||||
try_get,
|
try_get,
|
||||||
urljoin,
|
urljoin,
|
||||||
url_or_none,
|
url_or_none,
|
||||||
@ -204,10 +205,34 @@ class NRKIE(NRKBaseIE):
|
|||||||
'height': int_or_none(image.get('pixelHeight')),
|
'height': int_or_none(image.get('pixelHeight')),
|
||||||
})
|
})
|
||||||
|
|
||||||
age_limit = int_or_none(try_get(
|
subtitles = {}
|
||||||
data, lambda x: x['legalAge']['body']['rating']['code']))
|
for sub in try_get(playable, lambda x: x['subtitles'], list) or []:
|
||||||
|
if not isinstance(sub, dict):
|
||||||
|
continue
|
||||||
|
sub_url = url_or_none(sub.get('webVtt'))
|
||||||
|
if not sub_url:
|
||||||
|
continue
|
||||||
|
sub_key = str_or_none(sub.get('language')) or 'nb'
|
||||||
|
sub_type = str_or_none(sub.get('type'))
|
||||||
|
if sub_type:
|
||||||
|
sub_key += '-%s' % sub_type
|
||||||
|
subtitles.setdefault(sub_key, []).append({
|
||||||
|
'url': sub_url,
|
||||||
|
})
|
||||||
|
|
||||||
return {
|
legal_age = try_get(
|
||||||
|
data, lambda x: x['legalAge']['body']['rating']['code'], compat_str)
|
||||||
|
# https://en.wikipedia.org/wiki/Norwegian_Media_Authority
|
||||||
|
if legal_age == 'A':
|
||||||
|
age_limit = 0
|
||||||
|
elif legal_age.isdigit():
|
||||||
|
age_limit = int_or_none(legal_age)
|
||||||
|
else:
|
||||||
|
age_limit = None
|
||||||
|
|
||||||
|
is_series = try_get(data, lambda x: x['_links']['series']['name']) == 'series'
|
||||||
|
|
||||||
|
info = {
|
||||||
'id': video_id,
|
'id': video_id,
|
||||||
'title': title,
|
'title': title,
|
||||||
'alt_title': alt_title,
|
'alt_title': alt_title,
|
||||||
@ -216,8 +241,48 @@ class NRKIE(NRKBaseIE):
|
|||||||
'thumbnails': thumbnails,
|
'thumbnails': thumbnails,
|
||||||
'age_limit': age_limit,
|
'age_limit': age_limit,
|
||||||
'formats': formats,
|
'formats': formats,
|
||||||
|
'subtitles': subtitles,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if is_series:
|
||||||
|
series = season_id = season_number = episode = episode_number = None
|
||||||
|
programs = self._call_api(
|
||||||
|
'programs/%s' % video_id, video_id, 'programs', fatal=False)
|
||||||
|
if programs and isinstance(programs, dict):
|
||||||
|
series = str_or_none(programs.get('seriesTitle'))
|
||||||
|
season_id = str_or_none(programs.get('seasonId'))
|
||||||
|
season_number = int_or_none(programs.get('seasonNumber'))
|
||||||
|
episode = str_or_none(programs.get('episodeTitle'))
|
||||||
|
episode_number = int_or_none(programs.get('episodeNumber'))
|
||||||
|
if not series:
|
||||||
|
series = title
|
||||||
|
if alt_title:
|
||||||
|
title += ' - %s' % alt_title
|
||||||
|
if not season_number:
|
||||||
|
season_number = int_or_none(self._search_regex(
|
||||||
|
r'Sesong\s+(\d+)', description or '', 'season number',
|
||||||
|
default=None))
|
||||||
|
if not episode:
|
||||||
|
episode = alt_title if is_series else None
|
||||||
|
if not episode_number:
|
||||||
|
episode_number = int_or_none(self._search_regex(
|
||||||
|
r'^(\d+)\.', episode or '', 'episode number',
|
||||||
|
default=None))
|
||||||
|
if not episode_number:
|
||||||
|
episode_number = int_or_none(self._search_regex(
|
||||||
|
r'\((\d+)\s*:\s*\d+\)', description or '',
|
||||||
|
'episode number', default=None))
|
||||||
|
info.update({
|
||||||
|
'title': title,
|
||||||
|
'series': series,
|
||||||
|
'season_id': season_id,
|
||||||
|
'season_number': season_number,
|
||||||
|
'episode': episode,
|
||||||
|
'episode_number': episode_number,
|
||||||
|
})
|
||||||
|
|
||||||
|
return info
|
||||||
|
|
||||||
|
|
||||||
class NRKTVIE(InfoExtractor):
|
class NRKTVIE(InfoExtractor):
|
||||||
IE_DESC = 'NRK TV and NRK Radio'
|
IE_DESC = 'NRK TV and NRK Radio'
|
||||||
@ -227,7 +292,7 @@ class NRKTVIE(InfoExtractor):
|
|||||||
'url': 'https://tv.nrk.no/program/MDDP12000117',
|
'url': 'https://tv.nrk.no/program/MDDP12000117',
|
||||||
'md5': 'c4a5960f1b00b40d47db65c1064e0ab1',
|
'md5': 'c4a5960f1b00b40d47db65c1064e0ab1',
|
||||||
'info_dict': {
|
'info_dict': {
|
||||||
'id': 'MDDP12000117AA',
|
'id': 'MDDP12000117',
|
||||||
'ext': 'mp4',
|
'ext': 'mp4',
|
||||||
'title': 'Alarm Trolltunga',
|
'title': 'Alarm Trolltunga',
|
||||||
'description': 'md5:46923a6e6510eefcce23d5ef2a58f2ce',
|
'description': 'md5:46923a6e6510eefcce23d5ef2a58f2ce',
|
||||||
@ -238,24 +303,27 @@ class NRKTVIE(InfoExtractor):
|
|||||||
'url': 'https://tv.nrk.no/serie/20-spoersmaal-tv/MUHH48000314/23-05-2014',
|
'url': 'https://tv.nrk.no/serie/20-spoersmaal-tv/MUHH48000314/23-05-2014',
|
||||||
'md5': '8d40dab61cea8ab0114e090b029a0565',
|
'md5': '8d40dab61cea8ab0114e090b029a0565',
|
||||||
'info_dict': {
|
'info_dict': {
|
||||||
'id': 'MUHH48000314AA',
|
'id': 'MUHH48000314',
|
||||||
'ext': 'mp4',
|
'ext': 'mp4',
|
||||||
'title': '20 spørsmål 23.05.2014',
|
'title': '20 spørsmål - 23. mai 2014',
|
||||||
|
'alt_title': '23. mai 2014',
|
||||||
'description': 'md5:bdea103bc35494c143c6a9acdd84887a',
|
'description': 'md5:bdea103bc35494c143c6a9acdd84887a',
|
||||||
'duration': 1741,
|
'duration': 1741,
|
||||||
'series': '20 spørsmål',
|
'series': '20 spørsmål',
|
||||||
'episode': '23.05.2014',
|
'episode': '23. mai 2014',
|
||||||
|
'age_limit': 0,
|
||||||
},
|
},
|
||||||
}, {
|
}, {
|
||||||
'url': 'https://tv.nrk.no/program/mdfp15000514',
|
'url': 'https://tv.nrk.no/program/mdfp15000514',
|
||||||
'info_dict': {
|
'info_dict': {
|
||||||
'id': 'MDFP15000514CA',
|
'id': 'MDFP15000514',
|
||||||
'ext': 'mp4',
|
'ext': 'mp4',
|
||||||
'title': 'Grunnlovsjubiléet - Stor ståhei for ingenting 24.05.2014',
|
'title': 'Kunnskapskanalen - Grunnlovsjubiléet - Stor ståhei for ingenting',
|
||||||
'description': 'md5:89290c5ccde1b3a24bb8050ab67fe1db',
|
'description': 'md5:89290c5ccde1b3a24bb8050ab67fe1db',
|
||||||
'duration': 4605.08,
|
'duration': 4605.08,
|
||||||
'series': 'Kunnskapskanalen',
|
'series': 'Kunnskapskanalen',
|
||||||
'episode': '24.05.2014',
|
'episode': 'Grunnlovsjubiléet - Stor ståhei for ingenting',
|
||||||
|
'age_limit': 0,
|
||||||
},
|
},
|
||||||
'params': {
|
'params': {
|
||||||
'skip_download': True,
|
'skip_download': True,
|
||||||
@ -264,10 +332,11 @@ class NRKTVIE(InfoExtractor):
|
|||||||
# single playlist video
|
# single playlist video
|
||||||
'url': 'https://tv.nrk.no/serie/tour-de-ski/MSPO40010515/06-01-2015#del=2',
|
'url': 'https://tv.nrk.no/serie/tour-de-ski/MSPO40010515/06-01-2015#del=2',
|
||||||
'info_dict': {
|
'info_dict': {
|
||||||
'id': 'MSPO40010515AH',
|
'id': 'MSPO40010515',
|
||||||
'ext': 'mp4',
|
'ext': 'mp4',
|
||||||
'title': 'Sprint fri teknikk, kvinner og menn 06.01.2015',
|
'title': 'Sprint fri teknikk, kvinner og menn 06.01.2015',
|
||||||
'description': 'md5:c03aba1e917561eface5214020551b7a',
|
'description': 'md5:c03aba1e917561eface5214020551b7a',
|
||||||
|
'age_limit': 0,
|
||||||
},
|
},
|
||||||
'params': {
|
'params': {
|
||||||
'skip_download': True,
|
'skip_download': True,
|
||||||
@ -277,24 +346,27 @@ class NRKTVIE(InfoExtractor):
|
|||||||
}, {
|
}, {
|
||||||
'url': 'https://tv.nrk.no/serie/tour-de-ski/MSPO40010515/06-01-2015',
|
'url': 'https://tv.nrk.no/serie/tour-de-ski/MSPO40010515/06-01-2015',
|
||||||
'info_dict': {
|
'info_dict': {
|
||||||
'id': 'MSPO40010515AH',
|
'id': 'MSPO40010515',
|
||||||
'ext': 'mp4',
|
'ext': 'mp4',
|
||||||
'title': 'Sprint fri teknikk, kvinner og menn 06.01.2015',
|
'title': 'Sprint fri teknikk, kvinner og menn 06.01.2015',
|
||||||
'description': 'md5:c03aba1e917561eface5214020551b7a',
|
'description': 'md5:c03aba1e917561eface5214020551b7a',
|
||||||
|
'age_limit': 0,
|
||||||
},
|
},
|
||||||
'expected_warnings': ['Failed to download m3u8 information'],
|
'expected_warnings': ['Failed to download m3u8 information'],
|
||||||
|
'skip': 'Ikke tilgjengelig utenfor Norge',
|
||||||
}, {
|
}, {
|
||||||
'url': 'https://tv.nrk.no/serie/anno/KMTE50001317/sesong-3/episode-13',
|
'url': 'https://tv.nrk.no/serie/anno/KMTE50001317/sesong-3/episode-13',
|
||||||
'info_dict': {
|
'info_dict': {
|
||||||
'id': 'KMTE50001317AA',
|
'id': 'KMTE50001317',
|
||||||
'ext': 'mp4',
|
'ext': 'mp4',
|
||||||
'title': 'Anno 13:30',
|
'title': 'Anno - 13. episode',
|
||||||
'description': 'md5:11d9613661a8dbe6f9bef54e3a4cbbfa',
|
'description': 'md5:11d9613661a8dbe6f9bef54e3a4cbbfa',
|
||||||
'duration': 2340,
|
'duration': 2340,
|
||||||
'series': 'Anno',
|
'series': 'Anno',
|
||||||
'episode': '13:30',
|
'episode': '13. episode',
|
||||||
'season_number': 3,
|
'season_number': 3,
|
||||||
'episode_number': 13,
|
'episode_number': 13,
|
||||||
|
'age_limit': 0,
|
||||||
},
|
},
|
||||||
'params': {
|
'params': {
|
||||||
'skip_download': True,
|
'skip_download': True,
|
||||||
@ -302,13 +374,14 @@ class NRKTVIE(InfoExtractor):
|
|||||||
}, {
|
}, {
|
||||||
'url': 'https://tv.nrk.no/serie/nytt-paa-nytt/MUHH46000317/27-01-2017',
|
'url': 'https://tv.nrk.no/serie/nytt-paa-nytt/MUHH46000317/27-01-2017',
|
||||||
'info_dict': {
|
'info_dict': {
|
||||||
'id': 'MUHH46000317AA',
|
'id': 'MUHH46000317',
|
||||||
'ext': 'mp4',
|
'ext': 'mp4',
|
||||||
'title': 'Nytt på Nytt 27.01.2017',
|
'title': 'Nytt på Nytt 27.01.2017',
|
||||||
'description': 'md5:5358d6388fba0ea6f0b6d11c48b9eb4b',
|
'description': 'md5:5358d6388fba0ea6f0b6d11c48b9eb4b',
|
||||||
'duration': 1796,
|
'duration': 1796,
|
||||||
'series': 'Nytt på nytt',
|
'series': 'Nytt på nytt',
|
||||||
'episode': '27.01.2017',
|
'episode': '27.01.2017',
|
||||||
|
'age_limit': 0,
|
||||||
},
|
},
|
||||||
'params': {
|
'params': {
|
||||||
'skip_download': True,
|
'skip_download': True,
|
||||||
@ -332,19 +405,19 @@ class NRKTVIE(InfoExtractor):
|
|||||||
|
|
||||||
|
|
||||||
class NRKTVEpisodeIE(InfoExtractor):
|
class NRKTVEpisodeIE(InfoExtractor):
|
||||||
_VALID_URL = r'https?://tv\.nrk\.no/serie/(?P<id>[^/]+/sesong/\d+/episode/\d+)'
|
_VALID_URL = r'https?://tv\.nrk\.no/serie/(?P<id>[^/]+/sesong/(?P<season_number>\d+)/episode/(?P<episode_number>\d+))'
|
||||||
_TESTS = [{
|
_TESTS = [{
|
||||||
'url': 'https://tv.nrk.no/serie/hellums-kro/sesong/1/episode/2',
|
'url': 'https://tv.nrk.no/serie/hellums-kro/sesong/1/episode/2',
|
||||||
'info_dict': {
|
'info_dict': {
|
||||||
'id': 'MUHH36005220BA',
|
'id': 'MUHH36005220',
|
||||||
'ext': 'mp4',
|
'ext': 'mp4',
|
||||||
'title': 'Kro, krig og kjærlighet 2:6',
|
'title': 'Hellums kro - 2. Kro, krig og kjærlighet',
|
||||||
'description': 'md5:b32a7dc0b1ed27c8064f58b97bda4350',
|
'description': 'md5:ad92ddffc04cea8ce14b415deef81787',
|
||||||
'duration': 1563,
|
'duration': 1563.92,
|
||||||
'series': 'Hellums kro',
|
'series': 'Hellums kro',
|
||||||
'season_number': 1,
|
'season_number': 1,
|
||||||
'episode_number': 2,
|
'episode_number': 2,
|
||||||
'episode': '2:6',
|
'episode': '2. Kro, krig og kjærlighet',
|
||||||
'age_limit': 6,
|
'age_limit': 6,
|
||||||
},
|
},
|
||||||
'params': {
|
'params': {
|
||||||
@ -353,15 +426,16 @@ class NRKTVEpisodeIE(InfoExtractor):
|
|||||||
}, {
|
}, {
|
||||||
'url': 'https://tv.nrk.no/serie/backstage/sesong/1/episode/8',
|
'url': 'https://tv.nrk.no/serie/backstage/sesong/1/episode/8',
|
||||||
'info_dict': {
|
'info_dict': {
|
||||||
'id': 'MSUI14000816AA',
|
'id': 'MSUI14000816',
|
||||||
'ext': 'mp4',
|
'ext': 'mp4',
|
||||||
'title': 'Backstage 8:30',
|
'title': 'Backstage - 8. episode',
|
||||||
'description': 'md5:de6ca5d5a2d56849e4021f2bf2850df4',
|
'description': 'md5:de6ca5d5a2d56849e4021f2bf2850df4',
|
||||||
'duration': 1320,
|
'duration': 1320,
|
||||||
'series': 'Backstage',
|
'series': 'Backstage',
|
||||||
'season_number': 1,
|
'season_number': 1,
|
||||||
'episode_number': 8,
|
'episode_number': 8,
|
||||||
'episode': '8:30',
|
'episode': '8. episode',
|
||||||
|
'age_limit': 0,
|
||||||
},
|
},
|
||||||
'params': {
|
'params': {
|
||||||
'skip_download': True,
|
'skip_download': True,
|
||||||
@ -370,7 +444,7 @@ class NRKTVEpisodeIE(InfoExtractor):
|
|||||||
}]
|
}]
|
||||||
|
|
||||||
def _real_extract(self, url):
|
def _real_extract(self, url):
|
||||||
display_id = self._match_id(url)
|
display_id, season_number, episode_number = re.match(self._VALID_URL, url).groups()
|
||||||
|
|
||||||
webpage = self._download_webpage(url, display_id)
|
webpage = self._download_webpage(url, display_id)
|
||||||
|
|
||||||
@ -382,10 +456,12 @@ class NRKTVEpisodeIE(InfoExtractor):
|
|||||||
assert re.match(NRKTVIE._EPISODE_RE, nrk_id)
|
assert re.match(NRKTVIE._EPISODE_RE, nrk_id)
|
||||||
|
|
||||||
info.update({
|
info.update({
|
||||||
'_type': 'url_transparent',
|
'_type': 'url',
|
||||||
'id': nrk_id,
|
'id': nrk_id,
|
||||||
'url': 'nrk:%s' % nrk_id,
|
'url': 'nrk:%s' % nrk_id,
|
||||||
'ie_key': NRKIE.ie_key(),
|
'ie_key': NRKIE.ie_key(),
|
||||||
|
'season_number': int(season_number),
|
||||||
|
'episode_number': int(episode_number),
|
||||||
})
|
})
|
||||||
return info
|
return info
|
||||||
|
|
||||||
|
@ -1,3 +1,3 @@
|
|||||||
from __future__ import unicode_literals
|
from __future__ import unicode_literals
|
||||||
|
|
||||||
__version__ = '2020.12.31'
|
__version__ = '2021.01.03'
|
||||||
|
Loading…
x
Reference in New Issue
Block a user