From 14823decf3f27d5e7f17abf85444575f7600f4e4 Mon Sep 17 00:00:00 2001 From: rrooij Date: Sun, 31 Jan 2016 00:03:23 +0100 Subject: [PATCH 1/5] [Gamekings] Fix url from .tv to .nl Gamekings doesn't use the .tv top level domain anymore, but the regular domain for Dutch sites. --- youtube_dl/extractor/gamekings.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/youtube_dl/extractor/gamekings.py b/youtube_dl/extractor/gamekings.py index 027f55eb2..e7747a3ae 100644 --- a/youtube_dl/extractor/gamekings.py +++ b/youtube_dl/extractor/gamekings.py @@ -9,9 +9,9 @@ from ..utils import ( class GamekingsIE(InfoExtractor): - _VALID_URL = r'http://www\.gamekings\.tv/(?:videos|nieuws)/(?P[^/]+)' + _VALID_URL = r'http://www\.gamekings\.nl/(?:videos|nieuws)/(?P[^/]+)' _TESTS = [{ - 'url': 'http://www.gamekings.tv/videos/phoenix-wright-ace-attorney-dual-destinies-review/', + 'url': 'http://www.gamekings.nl/videos/phoenix-wright-ace-attorney-dual-destinies-review/', # MD5 is flaky, seems to change regularly # 'md5': '2f32b1f7b80fdc5cb616efb4f387f8a3', 'info_dict': { @@ -23,7 +23,7 @@ class GamekingsIE(InfoExtractor): }, }, { # vimeo video - 'url': 'http://www.gamekings.tv/videos/the-legend-of-zelda-majoras-mask/', + 'url': 'http://www.gamekings.nl/videos/the-legend-of-zelda-majoras-mask/', 'md5': '12bf04dfd238e70058046937657ea68d', 'info_dict': { 'id': 'the-legend-of-zelda-majoras-mask', @@ -33,7 +33,7 @@ class GamekingsIE(InfoExtractor): 'thumbnail': 're:^https?://.*\.jpg$', }, }, { - 'url': 'http://www.gamekings.tv/nieuws/gamekings-extra-shelly-en-david-bereiden-zich-voor-op-de-livestream/', + 'url': 'http://www.gamekings.nl/nieuws/gamekings-extra-shelly-en-david-bereiden-zich-voor-op-de-livestream/', 'only_matching': True, }] From ce5879fa1475d9b0a74bd4e644ea944083177b2d Mon Sep 17 00:00:00 2001 From: rrooij Date: Sun, 31 Jan 2016 00:12:45 +0100 Subject: [PATCH 2/5] [Gamekings] Fix viewing of old videos Some old videos that aren't on Vimeo are being uploaded to YouTube under the 'Gamekings Vault' channel. They use YouTube now for some videos as video hosting instead of Vimeo or their own hosting. The first test failed to succeed under the existing code, but works now by using the YouTube extractor. The Regex is changed to find the new gogoVideo JavaScript line with the YouTube embed. Checking if there is a YouTube embed is done by a String find, which is probably not the best method of checking this. --- youtube_dl/extractor/gamekings.py | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/youtube_dl/extractor/gamekings.py b/youtube_dl/extractor/gamekings.py index e7747a3ae..efe31c10d 100644 --- a/youtube_dl/extractor/gamekings.py +++ b/youtube_dl/extractor/gamekings.py @@ -15,11 +15,14 @@ class GamekingsIE(InfoExtractor): # MD5 is flaky, seems to change regularly # 'md5': '2f32b1f7b80fdc5cb616efb4f387f8a3', 'info_dict': { - 'id': 'phoenix-wright-ace-attorney-dual-destinies-review', + 'id': 'HkSQKetlGOU', 'ext': 'mp4', - 'title': 'Phoenix Wright: Ace Attorney \u2013 Dual Destinies Review', - 'description': 'md5:36fd701e57e8c15ac8682a2374c99731', + 'title': 'Phoenix Wright: Ace Attorney - Dual Destinies Review', + 'description': 'md5:db88c0e7f47e9ea50df3271b9dc72e1d', 'thumbnail': 're:^https?://.*\.jpg$', + 'uploader_id': 'UCJugRGo4STYMeFr5RoOShtQ', + 'uploader': 'Gamekings Vault', + 'upload_date': '20151123', }, }, { # vimeo video @@ -43,7 +46,11 @@ class GamekingsIE(InfoExtractor): webpage = self._download_webpage(url, video_id) playlist_id = self._search_regex( - r'gogoVideo\(\s*\d+\s*,\s*"([^"]+)', webpage, 'playlist id') + r'gogoVideo\(.*,\s*"([^"]+)', webpage, 'playlist id') + + # Check if a YouTube embed is used + if playlist_id.find('youtube') != -1: + return self.url_result(playlist_id, ie='Youtube') playlist = self._download_xml( 'http://www.gamekings.tv/wp-content/themes/gk2010/rss_playlist.php?id=%s' % playlist_id, From 163da6a484f57c52afdf300d368136d164316803 Mon Sep 17 00:00:00 2001 From: Yen Chi Hsuan Date: Mon, 1 Feb 2016 02:13:11 +0800 Subject: [PATCH 3/5] [gamekings] Add MD5 back The test is now a YouTube video, whose MD5 should be stable --- youtube_dl/extractor/gamekings.py | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/youtube_dl/extractor/gamekings.py b/youtube_dl/extractor/gamekings.py index efe31c10d..c011e9d22 100644 --- a/youtube_dl/extractor/gamekings.py +++ b/youtube_dl/extractor/gamekings.py @@ -12,8 +12,7 @@ class GamekingsIE(InfoExtractor): _VALID_URL = r'http://www\.gamekings\.nl/(?:videos|nieuws)/(?P[^/]+)' _TESTS = [{ 'url': 'http://www.gamekings.nl/videos/phoenix-wright-ace-attorney-dual-destinies-review/', - # MD5 is flaky, seems to change regularly - # 'md5': '2f32b1f7b80fdc5cb616efb4f387f8a3', + 'md5': '5208d3a17adeaef829a7861887cb9029', 'info_dict': { 'id': 'HkSQKetlGOU', 'ext': 'mp4', From eab3c2895c66a8d2f5da181d3ccba35a901b813f Mon Sep 17 00:00:00 2001 From: Yen Chi Hsuan Date: Mon, 1 Feb 2016 02:15:25 +0800 Subject: [PATCH 4/5] [gamekings] add_ie --- youtube_dl/extractor/gamekings.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/youtube_dl/extractor/gamekings.py b/youtube_dl/extractor/gamekings.py index c011e9d22..df385e338 100644 --- a/youtube_dl/extractor/gamekings.py +++ b/youtube_dl/extractor/gamekings.py @@ -11,6 +11,7 @@ from ..utils import ( class GamekingsIE(InfoExtractor): _VALID_URL = r'http://www\.gamekings\.nl/(?:videos|nieuws)/(?P[^/]+)' _TESTS = [{ + # YouTube embed video 'url': 'http://www.gamekings.nl/videos/phoenix-wright-ace-attorney-dual-destinies-review/', 'md5': '5208d3a17adeaef829a7861887cb9029', 'info_dict': { @@ -23,6 +24,7 @@ class GamekingsIE(InfoExtractor): 'uploader': 'Gamekings Vault', 'upload_date': '20151123', }, + 'add_ie': ['Youtube'], }, { # vimeo video 'url': 'http://www.gamekings.nl/videos/the-legend-of-zelda-majoras-mask/', From 0e1b1a011d1772bc1a7069bad8ad71a53798a212 Mon Sep 17 00:00:00 2001 From: Yen Chi Hsuan Date: Mon, 1 Feb 2016 02:19:03 +0800 Subject: [PATCH 5/5] [gamekings] Stricter checks --- youtube_dl/extractor/gamekings.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/youtube_dl/extractor/gamekings.py b/youtube_dl/extractor/gamekings.py index df385e338..f6b9046f9 100644 --- a/youtube_dl/extractor/gamekings.py +++ b/youtube_dl/extractor/gamekings.py @@ -6,6 +6,7 @@ from ..utils import ( xpath_text, xpath_with_ns, ) +from .youtube import YoutubeIE class GamekingsIE(InfoExtractor): @@ -47,10 +48,10 @@ class GamekingsIE(InfoExtractor): webpage = self._download_webpage(url, video_id) playlist_id = self._search_regex( - r'gogoVideo\(.*,\s*"([^"]+)', webpage, 'playlist id') + r'gogoVideo\([^,]+,\s*"([^"]+)', webpage, 'playlist id') # Check if a YouTube embed is used - if playlist_id.find('youtube') != -1: + if YoutubeIE.suitable(playlist_id): return self.url_result(playlist_id, ie='Youtube') playlist = self._download_xml(