mirror of
https://github.com/l1ving/youtube-dl
synced 2025-03-11 02:47:15 +08:00
Merge branch 'vimeo-views' into fix.25.12.2018
# Conflicts: # youtube_dl/version.py
This commit is contained in:
commit
e0504ea44a
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.01.16*. 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 *2019.01.17*. 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 **2019.01.16**
|
- [ ] I've **verified** and **I assure** that I'm running youtube-dl **2019.01.17**
|
||||||
|
|
||||||
### 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 2019.01.16
|
[debug] youtube-dl version 2019.01.17
|
||||||
[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: {}
|
||||||
|
@ -1,3 +1,10 @@
|
|||||||
|
version 2019.01.17
|
||||||
|
|
||||||
|
Extractors
|
||||||
|
* [youtube] Extend JS player signature function name regular expressions
|
||||||
|
(#18890, #18891, #18893)
|
||||||
|
|
||||||
|
|
||||||
version 2019.01.16
|
version 2019.01.16
|
||||||
|
|
||||||
Core
|
Core
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
# coding: utf-8
|
# coding: utf-8
|
||||||
from __future__ import unicode_literals
|
from __future__ import unicode_literals
|
||||||
|
|
||||||
|
import base64
|
||||||
import json
|
import json
|
||||||
import re
|
import re
|
||||||
import itertools
|
import itertools
|
||||||
@ -352,6 +353,7 @@ class VimeoIE(VimeoBaseInfoExtractor):
|
|||||||
'timestamp': 1324343742,
|
'timestamp': 1324343742,
|
||||||
'upload_date': '20111220',
|
'upload_date': '20111220',
|
||||||
'description': 'md5:ae23671e82d05415868f7ad1aec21147',
|
'description': 'md5:ae23671e82d05415868f7ad1aec21147',
|
||||||
|
'view_count': int,
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@ -392,6 +394,22 @@ class VimeoIE(VimeoBaseInfoExtractor):
|
|||||||
'skip_download': True,
|
'skip_download': True,
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
'url': 'http://player.vimeo.com/video/68375962',
|
||||||
|
'md5': 'aaf896bdb7ddd6476df50007a0ac0ae7',
|
||||||
|
'info_dict': {
|
||||||
|
'id': '68375962',
|
||||||
|
'ext': 'mp4',
|
||||||
|
'title': 'youtube-dl password protected test video',
|
||||||
|
'uploader_url': r're:https?://(?:www\.)?vimeo\.com/user18948128',
|
||||||
|
'uploader_id': 'user18948128',
|
||||||
|
'uploader': 'Jaime Marquínez Ferrándiz',
|
||||||
|
'duration': 10,
|
||||||
|
},
|
||||||
|
'params': {
|
||||||
|
'videopassword': 'youtube-dl',
|
||||||
|
},
|
||||||
|
},
|
||||||
{
|
{
|
||||||
'url': 'http://vimeo.com/moogaloop.swf?clip_id=2539741',
|
'url': 'http://vimeo.com/moogaloop.swf?clip_id=2539741',
|
||||||
'only_matching': True,
|
'only_matching': True,
|
||||||
@ -452,7 +470,9 @@ class VimeoIE(VimeoBaseInfoExtractor):
|
|||||||
password = self._downloader.params.get('videopassword')
|
password = self._downloader.params.get('videopassword')
|
||||||
if password is None:
|
if password is None:
|
||||||
raise ExtractorError('This video is protected by a password, use the --video-password option')
|
raise ExtractorError('This video is protected by a password, use the --video-password option')
|
||||||
data = urlencode_postdata({'password': password})
|
data = urlencode_postdata({
|
||||||
|
'password': base64.b64encode(password.encode()),
|
||||||
|
})
|
||||||
pass_url = url + '/check-password'
|
pass_url = url + '/check-password'
|
||||||
password_request = sanitized_Request(pass_url, data)
|
password_request = sanitized_Request(pass_url, data)
|
||||||
password_request.add_header('Content-Type', 'application/x-www-form-urlencoded')
|
password_request.add_header('Content-Type', 'application/x-www-form-urlencoded')
|
||||||
@ -622,12 +642,17 @@ class VimeoIE(VimeoBaseInfoExtractor):
|
|||||||
'timestamp', default=None)
|
'timestamp', default=None)
|
||||||
|
|
||||||
try:
|
try:
|
||||||
view_count = int(self._search_regex(r'UserPlays:(\d+)', webpage, 'view count'))
|
# When userInteractionCount does not exist views is 0
|
||||||
|
view_count = int_or_none(
|
||||||
|
self._search_regex(
|
||||||
|
r'"interactionType":"http:\/\/schema\.org\/WatchAction","userInteractionCount":(.+?)}',
|
||||||
|
webpage, 'view count', default=0
|
||||||
|
)
|
||||||
|
)
|
||||||
like_count = int(self._search_regex(r'UserLikes:(\d+)', webpage, 'like count'))
|
like_count = int(self._search_regex(r'UserLikes:(\d+)', webpage, 'like count'))
|
||||||
comment_count = int(self._search_regex(r'UserComments:(\d+)', webpage, 'comment count'))
|
comment_count = int(self._search_regex(r'UserComments:(\d+)', webpage, 'comment count'))
|
||||||
except RegexNotFoundError:
|
except RegexNotFoundError:
|
||||||
# This info is only available in vimeo.com/{id} urls
|
# This info is only available in vimeo.com/{id} urls
|
||||||
view_count = None
|
|
||||||
like_count = None
|
like_count = None
|
||||||
comment_count = None
|
comment_count = None
|
||||||
|
|
||||||
|
@ -1198,8 +1198,8 @@ class YoutubeIE(YoutubeBaseInfoExtractor):
|
|||||||
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'yt\.akamaized\.net/\)\s*\|\|\s*.*?\s*c\s*&&\s*d\.set\([^,]+\s*,\s*(?:encodeURIComponent\s*\()?(?P<sig>[a-zA-Z0-9$]+)\(',
|
||||||
r'\bc\s*&&\s*d\.set\([^,]+\s*,\s*(?P<sig>[a-zA-Z0-9$]+)\(',
|
r'\bc\s*&&\s*d\.set\([^,]+\s*,\s*(?:encodeURIComponent\s*\()?\s*(?P<sig>[a-zA-Z0-9$]+)\(',
|
||||||
r'\bc\s*&&\s*d\.set\([^,]+\s*,\s*\([^)]*\)\s*\(\s*(?P<sig>[a-zA-Z0-9$]+)\('),
|
r'\bc\s*&&\s*d\.set\([^,]+\s*,\s*\([^)]*\)\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')
|
||||||
|
|
||||||
|
@ -1,4 +1,5 @@
|
|||||||
from __future__ import unicode_literals
|
from __future__ import unicode_literals
|
||||||
|
|
||||||
__version__ = 'vc.2019.01.16.1'
|
|
||||||
|
__version__ = 'vc.2019.01.17'
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user