Merge branch 'master' of github.com:rg3/youtube-dl
* 'master' of github.com:rg3/youtube-dl: release 2019.04.24 [ChangeLog] Actualize [ci skip] [youtube] Fix extraction (closes #20758, closes #20759, closes #20761, closes #20762, closes #20764, closes #20766, closes #20767, closes #20769, closes #20771, closes #20768, closes #20770) [toutv] fix extraction and extract series info(closes #20757)
This commit is contained in:
commit
8018c791a7
6
.github/ISSUE_TEMPLATE.md
vendored
6
.github/ISSUE_TEMPLATE.md
vendored
@ -6,8 +6,8 @@
|
|||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
### Make sure you are using the *latest* version: run `youtube-dl --version` and ensure your version is *2019.04.17*. If it's not, read [this FAQ entry](https://github.com/ytdl-org/youtube-dl/blob/master/README.md#how-do-i-update-youtube-dl) and update. Issues with outdated version will be rejected.
|
### Make sure you are using the *latest* version: run `youtube-dl --version` and ensure your version is *2019.04.24*. If it's not, read [this FAQ entry](https://github.com/ytdl-org/youtube-dl/blob/master/README.md#how-do-i-update-youtube-dl) and update. Issues with outdated version will be rejected.
|
||||||
- [ ] I've **verified** and **I assure** that I'm running youtube-dl **2019.04.17**
|
- [ ] I've **verified** and **I assure** that I'm running youtube-dl **2019.04.24**
|
||||||
|
|
||||||
### Before submitting an *issue* make sure you have:
|
### Before submitting an *issue* make sure you have:
|
||||||
- [ ] At least skimmed through the [README](https://github.com/ytdl-org/youtube-dl/blob/master/README.md), **most notably** the [FAQ](https://github.com/ytdl-org/youtube-dl#faq) and [BUGS](https://github.com/ytdl-org/youtube-dl#bugs) sections
|
- [ ] At least skimmed through the [README](https://github.com/ytdl-org/youtube-dl/blob/master/README.md), **most notably** the [FAQ](https://github.com/ytdl-org/youtube-dl#faq) and [BUGS](https://github.com/ytdl-org/youtube-dl#bugs) sections
|
||||||
@ -36,7 +36,7 @@ Add the `-v` flag to **your command line** you run youtube-dl with (`youtube-dl
|
|||||||
[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 2019.04.17
|
[debug] youtube-dl version 2019.04.24
|
||||||
[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: {}
|
||||||
|
22
ChangeLog
22
ChangeLog
@ -1,3 +1,25 @@
|
|||||||
|
version 2019.04.24
|
||||||
|
|
||||||
|
Extractors
|
||||||
|
* [youtube] Fix extraction (#20758, #20759, #20761, #20762, #20764, #20766,
|
||||||
|
#20767, #20769, #20771, #20768, #20770)
|
||||||
|
* [toutv] Fix extraction and extract series info (#20757)
|
||||||
|
+ [vrv] Add support for movie listings (#19229)
|
||||||
|
+ [youtube] Print error when no data is available (#20737)
|
||||||
|
+ [soundcloud] Add support for new rendition and improve extraction (#20699)
|
||||||
|
+ [ooyala] Add support for geo verification proxy
|
||||||
|
+ [nrl] Add support for nrl.com (#15991)
|
||||||
|
+ [vimeo] Extract live archive source format (#19144)
|
||||||
|
+ [vimeo] Add support for live streams and improve info extraction (#19144)
|
||||||
|
+ [ntvcojp] Add support for cu.ntv.co.jp
|
||||||
|
+ [nhk] Extract RTMPT format
|
||||||
|
+ [nhk] Add support for audio URLs
|
||||||
|
+ [udemy] Add another course id extraction pattern (#20491)
|
||||||
|
+ [openload] Add support for oload.services (#20691)
|
||||||
|
+ [openload] Add support for openloed.co (#20691, #20693)
|
||||||
|
* [bravotv] Fix extraction (#19213)
|
||||||
|
|
||||||
|
|
||||||
version 2019.04.17
|
version 2019.04.17
|
||||||
|
|
||||||
Extractors
|
Extractors
|
||||||
|
@ -201,6 +201,7 @@
|
|||||||
- **CSpan**: C-SPAN
|
- **CSpan**: C-SPAN
|
||||||
- **CtsNews**: 華視新聞
|
- **CtsNews**: 華視新聞
|
||||||
- **CTVNews**
|
- **CTVNews**
|
||||||
|
- **cu.ntv.co.jp**: Nippon Television Network
|
||||||
- **Culturebox**
|
- **Culturebox**
|
||||||
- **CultureUnplugged**
|
- **CultureUnplugged**
|
||||||
- **curiositystream**
|
- **curiositystream**
|
||||||
@ -624,6 +625,7 @@
|
|||||||
- **NRKTVEpisodes**
|
- **NRKTVEpisodes**
|
||||||
- **NRKTVSeason**
|
- **NRKTVSeason**
|
||||||
- **NRKTVSeries**
|
- **NRKTVSeries**
|
||||||
|
- **NRLTV**
|
||||||
- **ntv.ru**
|
- **ntv.ru**
|
||||||
- **Nuvid**
|
- **Nuvid**
|
||||||
- **NYTimes**
|
- **NYTimes**
|
||||||
|
@ -66,7 +66,12 @@ class TouTvIE(RadioCanadaIE):
|
|||||||
|
|
||||||
def _real_extract(self, url):
|
def _real_extract(self, url):
|
||||||
path = self._match_id(url)
|
path = self._match_id(url)
|
||||||
metadata = self._download_json('http://ici.tou.tv/presentation/%s' % path, path)
|
metadata = self._download_json(
|
||||||
|
'https://services.radio-canada.ca/toutv/presentation/%s' % path, path, query={
|
||||||
|
'client_key': self._CLIENT_KEY,
|
||||||
|
'device': 'web',
|
||||||
|
'version': 4,
|
||||||
|
})
|
||||||
# IsDrm does not necessarily mean the video is DRM protected (see
|
# IsDrm does not necessarily mean the video is DRM protected (see
|
||||||
# https://github.com/ytdl-org/youtube-dl/issues/13994).
|
# https://github.com/ytdl-org/youtube-dl/issues/13994).
|
||||||
if metadata.get('IsDrm'):
|
if metadata.get('IsDrm'):
|
||||||
@ -77,6 +82,12 @@ class TouTvIE(RadioCanadaIE):
|
|||||||
return merge_dicts({
|
return merge_dicts({
|
||||||
'id': video_id,
|
'id': video_id,
|
||||||
'title': details.get('OriginalTitle'),
|
'title': details.get('OriginalTitle'),
|
||||||
|
'description': details.get('Description'),
|
||||||
'thumbnail': details.get('ImageUrl'),
|
'thumbnail': details.get('ImageUrl'),
|
||||||
'duration': int_or_none(details.get('LengthInSeconds')),
|
'duration': int_or_none(details.get('LengthInSeconds')),
|
||||||
|
'series': metadata.get('ProgramTitle'),
|
||||||
|
'season_number': int_or_none(metadata.get('SeasonNumber')),
|
||||||
|
'season': metadata.get('SeasonTitle'),
|
||||||
|
'episode_number': int_or_none(metadata.get('EpisodeNumber')),
|
||||||
|
'episode': metadata.get('EpisodeTitle'),
|
||||||
}, self._extract_info(metadata.get('AppCode', 'toutv'), video_id))
|
}, self._extract_info(metadata.get('AppCode', 'toutv'), video_id))
|
||||||
|
@ -1652,7 +1652,8 @@ class YoutubeIE(YoutubeBaseInfoExtractor):
|
|||||||
view_count = extract_view_count(get_video_info)
|
view_count = extract_view_count(get_video_info)
|
||||||
if not video_info:
|
if not video_info:
|
||||||
video_info = get_video_info
|
video_info = get_video_info
|
||||||
if 'token' in get_video_info:
|
get_token = get_video_info.get('token') or get_video_info.get('account_playback_token')
|
||||||
|
if get_token:
|
||||||
# Different get_video_info requests may report different results, e.g.
|
# Different get_video_info requests may report different results, e.g.
|
||||||
# some may report video unavailability, but some may serve it without
|
# some may report video unavailability, but some may serve it without
|
||||||
# any complaint (see https://github.com/ytdl-org/youtube-dl/issues/7362,
|
# any complaint (see https://github.com/ytdl-org/youtube-dl/issues/7362,
|
||||||
@ -1662,7 +1663,8 @@ class YoutubeIE(YoutubeBaseInfoExtractor):
|
|||||||
# due to YouTube measures against IP ranges of hosting providers.
|
# due to YouTube measures against IP ranges of hosting providers.
|
||||||
# Working around by preferring the first succeeded video_info containing
|
# Working around by preferring the first succeeded video_info containing
|
||||||
# the token if no such video_info yet was found.
|
# the token if no such video_info yet was found.
|
||||||
if 'token' not in video_info:
|
token = video_info.get('token') or video_info.get('account_playback_token')
|
||||||
|
if not token:
|
||||||
video_info = get_video_info
|
video_info = get_video_info
|
||||||
break
|
break
|
||||||
|
|
||||||
@ -1678,7 +1680,8 @@ class YoutubeIE(YoutubeBaseInfoExtractor):
|
|||||||
raise ExtractorError(
|
raise ExtractorError(
|
||||||
'YouTube said: %s' % unavailable_message, expected=True, video_id=video_id)
|
'YouTube said: %s' % unavailable_message, expected=True, video_id=video_id)
|
||||||
|
|
||||||
if 'token' not in video_info:
|
token = video_info.get('token') or video_info.get('account_playback_token')
|
||||||
|
if not token:
|
||||||
if 'reason' in video_info:
|
if 'reason' in video_info:
|
||||||
if 'The uploader has not made this video available in your country.' in video_info['reason']:
|
if 'The uploader has not made this video available in your country.' in video_info['reason']:
|
||||||
regions_allowed = self._html_search_meta(
|
regions_allowed = self._html_search_meta(
|
||||||
|
@ -1,3 +1,3 @@
|
|||||||
from __future__ import unicode_literals
|
from __future__ import unicode_literals
|
||||||
|
|
||||||
__version__ = '2019.04.17'
|
__version__ = '2019.04.24'
|
||||||
|
Loading…
x
Reference in New Issue
Block a user