projects
/
youtube-dl
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
[puhutv] Remove no longer available HTTP formats (closes #25124)
[youtube-dl]
/
youtube_dl
/
extractor
/
vevo.py
diff --git
a/youtube_dl/extractor/vevo.py
b/youtube_dl/extractor/vevo.py
index 9aa38bc5a725068125098e6c76c2d6bdaa6b7e00..4ea9f1b4bc02d5fc19777124b1f7d5b6cc44abba 100644
(file)
--- a/
youtube_dl/extractor/vevo.py
+++ b/
youtube_dl/extractor/vevo.py
@@
-1,6
+1,7
@@
from __future__ import unicode_literals
import re
from __future__ import unicode_literals
import re
+import json
from .common import InfoExtractor
from ..compat import (
from .common import InfoExtractor
from ..compat import (
@@
-11,7
+12,6
@@
from ..compat import (
from ..utils import (
ExtractorError,
int_or_none,
from ..utils import (
ExtractorError,
int_or_none,
- sanitized_Request,
parse_iso8601,
)
parse_iso8601,
)
@@
-34,6
+34,7
@@
class VevoIE(VevoBaseIE):
(?:https?://(?:www\.)?vevo\.com/watch/(?!playlist|genre)(?:[^/]+/(?:[^/]+/)?)?|
https?://cache\.vevo\.com/m/html/embed\.html\?video=|
https?://videoplayer\.vevo\.com/embed/embedded\?videoId=|
(?:https?://(?:www\.)?vevo\.com/watch/(?!playlist|genre)(?:[^/]+/(?:[^/]+/)?)?|
https?://cache\.vevo\.com/m/html/embed\.html\?video=|
https?://videoplayer\.vevo\.com/embed/embedded\?videoId=|
+ https?://embed\.vevo\.com/.*?[?&]isrc=|
vevo:)
(?P<id>[^&?#]+)'''
vevo:)
(?P<id>[^&?#]+)'''
@@
-144,6
+145,9
@@
class VevoIE(VevoBaseIE):
# Geo-restricted to Netherlands/Germany
'url': 'http://www.vevo.com/watch/boostee/pop-corn-clip-officiel/FR1A91600909',
'only_matching': True,
# Geo-restricted to Netherlands/Germany
'url': 'http://www.vevo.com/watch/boostee/pop-corn-clip-officiel/FR1A91600909',
'only_matching': True,
+ }, {
+ 'url': 'https://embed.vevo.com/?isrc=USH5V1923499&partnerId=4d61b777-8023-4191-9ede-497ed6c24647&partnerAdCode=',
+ 'only_matching': True,
}]
_VERSIONS = {
0: 'youtube', # only in AuthenticateVideo videoVersions
}]
_VERSIONS = {
0: 'youtube', # only in AuthenticateVideo videoVersions
@@
-154,19
+158,24
@@
class VevoIE(VevoBaseIE):
}
def _initialize_api(self, video_id):
}
def _initialize_api(self, video_id):
- req = sanitized_Request(
- 'http://www.vevo.com/auth', data=b'')
webpage = self._download_webpage(
webpage = self._download_webpage(
-
req
, None,
+
'https://accounts.vevo.com/token'
, None,
note='Retrieving oauth token',
note='Retrieving oauth token',
- errnote='Unable to retrieve oauth token')
+ errnote='Unable to retrieve oauth token',
+ data=json.dumps({
+ 'client_id': 'SPupX1tvqFEopQ1YS6SS',
+ 'grant_type': 'urn:vevo:params:oauth:grant-type:anonymous',
+ }).encode('utf-8'),
+ headers={
+ 'Content-Type': 'application/json',
+ })
if re.search(r'(?i)THIS PAGE IS CURRENTLY UNAVAILABLE IN YOUR REGION', webpage):
self.raise_geo_restricted(
'%s said: This page is currently unavailable in your region' % self.IE_NAME)
auth_info = self._parse_json(webpage, video_id)
if re.search(r'(?i)THIS PAGE IS CURRENTLY UNAVAILABLE IN YOUR REGION', webpage):
self.raise_geo_restricted(
'%s said: This page is currently unavailable in your region' % self.IE_NAME)
auth_info = self._parse_json(webpage, video_id)
- self._api_url_template = self.http_scheme() + '//apiv2.vevo.com/%s?token=' + auth_info['
access
_token']
+ self._api_url_template = self.http_scheme() + '//apiv2.vevo.com/%s?token=' + auth_info['
legacy
_token']
def _call_api(self, path, *args, **kwargs):
try:
def _call_api(self, path, *args, **kwargs):
try:
@@
-195,7
+204,7
@@
class VevoIE(VevoBaseIE):
fatal=False)
# Some videos are only available via webpage (e.g.
fatal=False)
# Some videos are only available via webpage (e.g.
- # https://github.com/
rg3
/youtube-dl/issues/9366)
+ # https://github.com/
ytdl-org
/youtube-dl/issues/9366)
if not video_versions:
webpage = self._download_webpage(url, video_id)
json_data = self._extract_json(webpage, video_id)
if not video_versions:
webpage = self._download_webpage(url, video_id)
json_data = self._extract_json(webpage, video_id)
@@
-270,8
+279,8
@@
class VevoIE(VevoBaseIE):
genres = video_info.get('genres')
genre = (
genres = video_info.get('genres')
genre = (
- genres[0] if genres and isinstance(genres, list)
and
- isinstance(genres[0], compat_str) else None)
+ genres[0] if genres and isinstance(genres, list)
+
and
isinstance(genres[0], compat_str) else None)
is_explicit = video_info.get('isExplicit')
if is_explicit is True:
is_explicit = video_info.get('isExplicit')
if is_explicit is True: