From 991bc36ea0c49b5b730b4c7e25e9c196971a8693 Mon Sep 17 00:00:00 2001 From: "Hendrik v. Raven" Date: Sat, 6 Jan 2018 15:09:53 +0100 Subject: [PATCH 1/3] extractor/gamestar: force view_count int conversion --- youtube_dl/extractor/gamestar.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/youtube_dl/extractor/gamestar.py b/youtube_dl/extractor/gamestar.py index e607d6ab8..f330e7cca 100644 --- a/youtube_dl/extractor/gamestar.py +++ b/youtube_dl/extractor/gamestar.py @@ -39,7 +39,7 @@ class GameStarIE(InfoExtractor): info_dict = self._json_ld(json_ld, video_id) info_dict['title'] = remove_end(info_dict['title'], ' - GameStar') - view_count = json_ld.get('interactionCount') + view_count = int_or_none(json_ld.get('interactionCount')) comment_count = int_or_none(self._html_search_regex( r'([0-9]+) Kommentare', webpage, 'comment_count', fatal=False)) From f4d919f0af9ed11677ecc65acafec79a4bbff965 Mon Sep 17 00:00:00 2001 From: "Hendrik v. Raven" Date: Sat, 6 Jan 2018 15:11:01 +0100 Subject: [PATCH 2/3] extractor/gamestar: update comment_count extraction the webpage layout has changed, update the regexp accordingly --- youtube_dl/extractor/gamestar.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/youtube_dl/extractor/gamestar.py b/youtube_dl/extractor/gamestar.py index f330e7cca..c8f07c20b 100644 --- a/youtube_dl/extractor/gamestar.py +++ b/youtube_dl/extractor/gamestar.py @@ -41,8 +41,8 @@ class GameStarIE(InfoExtractor): view_count = int_or_none(json_ld.get('interactionCount')) comment_count = int_or_none(self._html_search_regex( - r'([0-9]+) Kommentare', webpage, 'comment_count', - fatal=False)) + r'Kommentare\(([0-9]+)\)', + webpage, 'comment_count', fatal=False)) info_dict.update({ 'id': video_id, From 97abf54c4004da356a4e1b81a6137101110ad1c2 Mon Sep 17 00:00:00 2001 From: "Hendrik v. Raven" Date: Fri, 5 Jan 2018 21:26:08 +0100 Subject: [PATCH 3/3] add support for gamepro.de (same as gamestar.de) gamepro.de is the console focused variant of gamestar.de. Both use the same system and the existing gamestar extractor works fine for gamepro. It required some updates to the test data of gamestar.de --- youtube_dl/extractor/gamestar.py | 37 +++++++++++++++++++------------- 1 file changed, 22 insertions(+), 15 deletions(-) diff --git a/youtube_dl/extractor/gamestar.py b/youtube_dl/extractor/gamestar.py index c8f07c20b..7ce2f15de 100644 --- a/youtube_dl/extractor/gamestar.py +++ b/youtube_dl/extractor/gamestar.py @@ -9,21 +9,27 @@ from ..utils import ( class GameStarIE(InfoExtractor): - _VALID_URL = r'https?://(?:www\.)?gamestar\.de/videos/.*,(?P[0-9]+)\.html' - _TEST = { - 'url': 'http://www.gamestar.de/videos/trailer,3/hobbit-3-die-schlacht-der-fuenf-heere,76110.html', - 'md5': '96974ecbb7fd8d0d20fca5a00810cea7', - 'info_dict': { - 'id': '76110', - 'ext': 'mp4', - 'title': 'Hobbit 3: Die Schlacht der Fünf Heere - Teaser-Trailer zum dritten Teil', - 'description': 'Der Teaser-Trailer zu Hobbit 3: Die Schlacht der Fünf Heere zeigt einige Szenen aus dem dritten Teil der Saga und kündigt den...', - 'thumbnail': r're:^https?://.*\.jpg$', - 'timestamp': 1406542020, - 'upload_date': '20140728', - 'duration': 17 - } - } + _VALID_URL = r'https?://(?:www\.)?game(?:pro|star)\.de/videos/.*,(?P[0-9]+)\.html' + _TESTS = [ + { + 'url': 'http://www.gamestar.de/videos/trailer,3/hobbit-3-die-schlacht-der-fuenf-heere,76110.html', + 'md5': 'ee782f1f8050448c95c5cacd63bc851c', + 'info_dict': { + 'id': '76110', + 'ext': 'mp4', + 'title': 'Hobbit 3: Die Schlacht der Fünf Heere - Teaser-Trailer zum dritten Teil', + 'description': 'Der Teaser-Trailer zu Hobbit 3: Die Schlacht der Fünf Heere zeigt einige Szenen aus dem dritten Teil der Saga und kündigt den...', + 'thumbnail': r're:^https?://.*\.jpg$', + 'timestamp': 1406542380, + 'upload_date': '20140728', + 'duration': 17, + } + }, + { + 'url': 'http://www.gamepro.de/videos/top-10-indie-spiele-fuer-nintendo-switch-video-tolle-nindies-games-zum-download,95316.html', + 'only_matching': True, + }, + ] def _real_extract(self, url): video_id = self._match_id(url) @@ -38,6 +44,7 @@ class GameStarIE(InfoExtractor): webpage, 'JSON-LD', group='json_ld'), video_id) info_dict = self._json_ld(json_ld, video_id) info_dict['title'] = remove_end(info_dict['title'], ' - GameStar') + info_dict['title'] = remove_end(info_dict['title'], ' - GamePro') view_count = int_or_none(json_ld.get('interactionCount')) comment_count = int_or_none(self._html_search_regex(