Added extractor for rockstargames.com

This commit is contained in:
Dracony 2016-06-09 13:31:22 +02:00 committed by Sergey M․
parent 778f969447
commit 14d0f4e0f3
No known key found for this signature in database
GPG Key ID: 2C393E0F18A9236D
2 changed files with 55 additions and 0 deletions

View File

@ -649,6 +649,7 @@
from .rice import RICEIE from .rice import RICEIE
from .ringtv import RingTVIE from .ringtv import RingTVIE
from .ro220 import Ro220IE from .ro220 import Ro220IE
from .rockstargames import RockstarGamesIE
from .rottentomatoes import RottenTomatoesIE from .rottentomatoes import RottenTomatoesIE
from .roxwel import RoxwelIE from .roxwel import RoxwelIE
from .rtbf import RTBFIE from .rtbf import RTBFIE

View File

@ -0,0 +1,54 @@
# coding: utf-8
from __future__ import unicode_literals
from .common import InfoExtractor
from ..utils import (
qualities,
parse_iso8601
)
class RockstarGamesIE(InfoExtractor):
_VALID_URL = r'https?://(?:www\.)?rockstargames\.com/videos/video/(?P<id>[0-9]+)'
_TEST = {
'url': 'https://www.rockstargames.com/videos/video/11544/',
'md5': '03b5caa6e357a4bd50e3143fc03e5733',
'info_dict': {
'id': '11544',
'ext': 'mp4',
'title': 'Further Adventures in Finance and Felony Trailer',
'thumbnail': 're:^https?://.*\.jpg$',
'description': 'md5:6d31f55f30cb101b5476c4a379e324a3',
'upload_date': '20160602',
'timestamp': 1464876000
}
}
def _real_extract(self, url):
video_id = self._match_id(url)
json_data = self._download_json(
'https://www.rockstargames.com/videoplayer/videos/get-video.json?id=%s&locale=en_us' % video_id,
video_id
)['video']
formats = []
for video in json_data['files_processed']['video/mp4']:
if not video.get('src'):
continue
height = video.get('resolution', '').replace('p', '')
formats.append({
'url': self._proto_relative_url(video['src']),
'height': int(height) if height.isdigit() else -1,
})
self._sort_formats(formats)
return {
'id': video_id,
'title': json_data['title'],
'description': json_data.get('description'),
'formats': formats,
'thumbnail': self._proto_relative_url(json_data.get('screencap')),
'timestamp': parse_iso8601(json_data.get('created'))
}