Merge branch 'master' into PornHub-issue-16078
This commit is contained in:
commit
47f1c4752b
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 *2018.09.01*. If it's not, read [this FAQ entry](https://github.com/rg3/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 *2018.09.08*. If it's not, read [this FAQ entry](https://github.com/rg3/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 **2018.09.01**
|
- [ ] I've **verified** and **I assure** that I'm running youtube-dl **2018.09.08**
|
||||||
|
|
||||||
### 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/rg3/youtube-dl/blob/master/README.md), **most notably** the [FAQ](https://github.com/rg3/youtube-dl#faq) and [BUGS](https://github.com/rg3/youtube-dl#bugs) sections
|
- [ ] At least skimmed through the [README](https://github.com/rg3/youtube-dl/blob/master/README.md), **most notably** the [FAQ](https://github.com/rg3/youtube-dl#faq) and [BUGS](https://github.com/rg3/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 2018.09.01
|
[debug] youtube-dl version 2018.09.08
|
||||||
[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: {}
|
||||||
|
11
ChangeLog
11
ChangeLog
@ -1,3 +1,14 @@
|
|||||||
|
version 2018.09.08
|
||||||
|
|
||||||
|
Extractors
|
||||||
|
* [youtube] Fix extraction (#17457, #17464)
|
||||||
|
+ [pornhub:uservideos] Add support for new URLs (#17388)
|
||||||
|
* [iprima] Confirm adult check (#17437)
|
||||||
|
* [slideslive] Make check for video service name case-insensitive (#17429)
|
||||||
|
* [radiojavan] Fix extraction (#17151)
|
||||||
|
* [generic] Skip unsuccessful jwplayer extraction (#16735)
|
||||||
|
|
||||||
|
|
||||||
version 2018.09.01
|
version 2018.09.01
|
||||||
|
|
||||||
Core
|
Core
|
||||||
|
@ -59,7 +59,7 @@ class DTubeIE(InfoExtractor):
|
|||||||
try:
|
try:
|
||||||
self.to_screen('%s: Checking %s video format URL' % (video_id, format_id))
|
self.to_screen('%s: Checking %s video format URL' % (video_id, format_id))
|
||||||
self._downloader._opener.open(video_url, timeout=5).close()
|
self._downloader._opener.open(video_url, timeout=5).close()
|
||||||
except timeout as e:
|
except timeout:
|
||||||
self.to_screen(
|
self.to_screen(
|
||||||
'%s: %s URL is invalid, skipping' % (video_id, format_id))
|
'%s: %s URL is invalid, skipping' % (video_id, format_id))
|
||||||
continue
|
continue
|
||||||
|
@ -1086,6 +1086,7 @@ from .teachingchannel import TeachingChannelIE
|
|||||||
from .teamcoco import TeamcocoIE
|
from .teamcoco import TeamcocoIE
|
||||||
from .techtalks import TechTalksIE
|
from .techtalks import TechTalksIE
|
||||||
from .ted import TEDIE
|
from .ted import TEDIE
|
||||||
|
from .tele5 import Tele5IE
|
||||||
from .tele13 import Tele13IE
|
from .tele13 import Tele13IE
|
||||||
from .telebruxelles import TeleBruxellesIE
|
from .telebruxelles import TeleBruxellesIE
|
||||||
from .telecinco import TelecincoIE
|
from .telecinco import TelecincoIE
|
||||||
|
@ -3112,7 +3112,7 @@ class GenericIE(InfoExtractor):
|
|||||||
return self.playlist_from_matches(
|
return self.playlist_from_matches(
|
||||||
foxnews_urls, video_id, video_title, ie=FoxNewsIE.ie_key())
|
foxnews_urls, video_id, video_title, ie=FoxNewsIE.ie_key())
|
||||||
|
|
||||||
sharevideos_urls = [mobj.group('url') for mobj in re.finditer(
|
sharevideos_urls = [sharevideos_mobj.group('url') for sharevideos_mobj in re.finditer(
|
||||||
r'<iframe[^>]+?\bsrc\s*=\s*(["\'])(?P<url>(?:https?:)?//embed\.share-videos\.se/auto/embed/\d+\?.*?\buid=\d+.*?)\1',
|
r'<iframe[^>]+?\bsrc\s*=\s*(["\'])(?P<url>(?:https?:)?//embed\.share-videos\.se/auto/embed/\d+\?.*?\buid=\d+.*?)\1',
|
||||||
webpage)]
|
webpage)]
|
||||||
if sharevideos_urls:
|
if sharevideos_urls:
|
||||||
|
@ -167,9 +167,9 @@ class MotherlessGroupIE(InfoExtractor):
|
|||||||
if not entries:
|
if not entries:
|
||||||
entries = [
|
entries = [
|
||||||
self.url_result(
|
self.url_result(
|
||||||
compat_urlparse.urljoin(base, '/' + video_id),
|
compat_urlparse.urljoin(base, '/' + entry_id),
|
||||||
ie=MotherlessIE.ie_key(), video_id=video_id)
|
ie=MotherlessIE.ie_key(), video_id=entry_id)
|
||||||
for video_id in orderedSet(re.findall(
|
for entry_id in orderedSet(re.findall(
|
||||||
r'data-codename=["\']([A-Z0-9]+)', webpage))]
|
r'data-codename=["\']([A-Z0-9]+)', webpage))]
|
||||||
return entries
|
return entries
|
||||||
|
|
||||||
|
@ -7,6 +7,7 @@ import re
|
|||||||
from .common import InfoExtractor
|
from .common import InfoExtractor
|
||||||
from .theplatform import ThePlatformIE
|
from .theplatform import ThePlatformIE
|
||||||
from .adobepass import AdobePassIE
|
from .adobepass import AdobePassIE
|
||||||
|
from ..compat import compat_urllib_parse_unquote
|
||||||
from ..utils import (
|
from ..utils import (
|
||||||
find_xpath_attr,
|
find_xpath_attr,
|
||||||
smuggle_url,
|
smuggle_url,
|
||||||
@ -75,11 +76,16 @@ class NBCIE(AdobePassIE):
|
|||||||
'url': 'https://www.nbc.com/classic-tv/charles-in-charge/video/charles-in-charge-pilot/n3310',
|
'url': 'https://www.nbc.com/classic-tv/charles-in-charge/video/charles-in-charge-pilot/n3310',
|
||||||
'only_matching': True,
|
'only_matching': True,
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
# Percent escaped url
|
||||||
|
'url': 'https://www.nbc.com/up-all-night/video/day-after-valentine%27s-day/n2189',
|
||||||
|
'only_matching': True,
|
||||||
|
}
|
||||||
]
|
]
|
||||||
|
|
||||||
def _real_extract(self, url):
|
def _real_extract(self, url):
|
||||||
permalink, video_id = re.match(self._VALID_URL, url).groups()
|
permalink, video_id = re.match(self._VALID_URL, url).groups()
|
||||||
permalink = 'http' + permalink
|
permalink = 'http' + compat_urllib_parse_unquote(permalink)
|
||||||
response = self._download_json(
|
response = self._download_json(
|
||||||
'https://api.nbc.com/v3/videos', video_id, query={
|
'https://api.nbc.com/v3/videos', video_id, query={
|
||||||
'filter[permalink]': permalink,
|
'filter[permalink]': permalink,
|
||||||
|
@ -164,6 +164,6 @@ class SeznamZpravyArticleIE(InfoExtractor):
|
|||||||
description = info.get('description') or self._og_search_description(webpage)
|
description = info.get('description') or self._og_search_description(webpage)
|
||||||
|
|
||||||
return self.playlist_result([
|
return self.playlist_result([
|
||||||
self.url_result(url, ie=SeznamZpravyIE.ie_key())
|
self.url_result(entry_url, ie=SeznamZpravyIE.ie_key())
|
||||||
for url in SeznamZpravyIE._extract_urls(webpage)],
|
for entry_url in SeznamZpravyIE._extract_urls(webpage)],
|
||||||
article_id, title, description)
|
article_id, title, description)
|
||||||
|
44
youtube_dl/extractor/tele5.py
Normal file
44
youtube_dl/extractor/tele5.py
Normal file
@ -0,0 +1,44 @@
|
|||||||
|
# coding: utf-8
|
||||||
|
from __future__ import unicode_literals
|
||||||
|
|
||||||
|
from .common import InfoExtractor
|
||||||
|
from .nexx import NexxIE
|
||||||
|
from ..compat import compat_urlparse
|
||||||
|
|
||||||
|
|
||||||
|
class Tele5IE(InfoExtractor):
|
||||||
|
_VALID_URL = r'https?://(?:www\.)?tele5\.de/(?:mediathek|tv)/(?P<id>[^?#&]+)'
|
||||||
|
_TESTS = [{
|
||||||
|
'url': 'https://www.tele5.de/mediathek/filme-online/videos?vid=1549416',
|
||||||
|
'info_dict': {
|
||||||
|
'id': '1549416',
|
||||||
|
'ext': 'mp4',
|
||||||
|
'upload_date': '20180814',
|
||||||
|
'timestamp': 1534290623,
|
||||||
|
'title': 'Pandorum',
|
||||||
|
},
|
||||||
|
'params': {
|
||||||
|
'skip_download': True,
|
||||||
|
},
|
||||||
|
}, {
|
||||||
|
'url': 'https://www.tele5.de/tv/kalkofes-mattscheibe/video-clips/politik-und-gesellschaft?ve_id=1551191',
|
||||||
|
'only_matching': True,
|
||||||
|
}, {
|
||||||
|
'url': 'https://www.tele5.de/tv/dark-matter/videos',
|
||||||
|
'only_matching': True,
|
||||||
|
}]
|
||||||
|
|
||||||
|
def _real_extract(self, url):
|
||||||
|
qs = compat_urlparse.parse_qs(compat_urlparse.urlparse(url).query)
|
||||||
|
video_id = (qs.get('vid') or qs.get('ve_id') or [None])[0]
|
||||||
|
|
||||||
|
if not video_id:
|
||||||
|
display_id = self._match_id(url)
|
||||||
|
webpage = self._download_webpage(url, display_id)
|
||||||
|
video_id = self._html_search_regex(
|
||||||
|
r'id\s*=\s*["\']video-player["\'][^>]+data-id\s*=\s*["\'](\d+)',
|
||||||
|
webpage, 'video id')
|
||||||
|
|
||||||
|
return self.url_result(
|
||||||
|
'https://api.nexx.cloud/v3/759/videos/byid/%s' % video_id,
|
||||||
|
ie=NexxIE.ie_key(), video_id=video_id)
|
@ -1178,7 +1178,9 @@ class YoutubeIE(YoutubeBaseInfoExtractor):
|
|||||||
def _parse_sig_js(self, jscode):
|
def _parse_sig_js(self, jscode):
|
||||||
funcname = self._search_regex(
|
funcname = self._search_regex(
|
||||||
(r'(["\'])signature\1\s*,\s*(?P<sig>[a-zA-Z0-9$]+)\(',
|
(r'(["\'])signature\1\s*,\s*(?P<sig>[a-zA-Z0-9$]+)\(',
|
||||||
r'\.sig\|\|(?P<sig>[a-zA-Z0-9$]+)\('),
|
r'\.sig\|\|(?P<sig>[a-zA-Z0-9$]+)\(',
|
||||||
|
r'yt\.akamaized\.net/\)\s*\|\|\s*.*?\s*c\s*&&\s*d\.set\([^,]+\s*,\s*(?P<sig>[a-zA-Z0-9$]+)\(',
|
||||||
|
r'\bc\s*&&\s*d\.set\([^,]+\s*,\s*(?P<sig>[a-zA-Z0-9$]+)\('),
|
||||||
jscode, 'Initial JS player signature function name', group='sig')
|
jscode, 'Initial JS player signature function name', group='sig')
|
||||||
|
|
||||||
jsi = JSInterpreter(jscode)
|
jsi = JSInterpreter(jscode)
|
||||||
|
@ -1,3 +1,3 @@
|
|||||||
from __future__ import unicode_literals
|
from __future__ import unicode_literals
|
||||||
|
|
||||||
__version__ = '2018.09.01'
|
__version__ = '2018.09.08'
|
||||||
|
Loading…
x
Reference in New Issue
Block a user