| 
									
										
										
										
											2015-02-08 23:03:12 +06:00
										 |  |  |  | # coding: utf-8 | 
					
						
							| 
									
										
										
										
											2014-03-09 11:57:30 +01:00
										 |  |  |  | from __future__ import unicode_literals | 
					
						
							|  |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-11-13 10:30:41 +01:00
										 |  |  |  | from .common import InfoExtractor | 
					
						
							| 
									
										
										
										
											2015-02-08 16:44:25 +01:00
										 |  |  |  | from ..utils import ( | 
					
						
							|  |  |  |  |     xpath_text, | 
					
						
							| 
									
										
										
										
											2015-02-08 23:03:12 +06:00
										 |  |  |  |     xpath_with_ns, | 
					
						
							|  |  |  |  | ) | 
					
						
							| 
									
										
										
										
											2016-02-01 02:19:03 +08:00
										 |  |  |  | from .youtube import YoutubeIE | 
					
						
							| 
									
										
										
										
											2015-02-08 16:44:25 +01:00
										 |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-11-13 10:30:41 +01:00
										 |  |  |  | 
 | 
					
						
							|  |  |  |  | class GamekingsIE(InfoExtractor): | 
					
						
							| 
									
										
										
										
											2016-03-21 21:36:32 +06:00
										 |  |  |  |     _VALID_URL = r'https?://www\.gamekings\.nl/(?:videos|nieuws)/(?P<id>[^/]+)' | 
					
						
							| 
									
										
										
										
											2015-02-08 23:03:12 +06:00
										 |  |  |  |     _TESTS = [{ | 
					
						
							| 
									
										
										
										
											2016-02-01 02:15:25 +08:00
										 |  |  |  |         # YouTube embed video | 
					
						
							| 
									
										
										
										
											2016-01-31 00:03:23 +01:00
										 |  |  |  |         'url': 'http://www.gamekings.nl/videos/phoenix-wright-ace-attorney-dual-destinies-review/', | 
					
						
							| 
									
										
										
										
											2016-02-01 02:13:11 +08:00
										 |  |  |  |         'md5': '5208d3a17adeaef829a7861887cb9029', | 
					
						
							| 
									
										
										
										
											2014-11-26 13:06:02 +01:00
										 |  |  |  |         'info_dict': { | 
					
						
							| 
									
										
										
										
											2016-01-31 00:12:45 +01:00
										 |  |  |  |             'id': 'HkSQKetlGOU', | 
					
						
							| 
									
										
										
										
											2014-03-09 11:57:30 +01:00
										 |  |  |  |             'ext': 'mp4', | 
					
						
							| 
									
										
										
										
											2016-01-31 00:12:45 +01:00
										 |  |  |  |             'title': 'Phoenix Wright: Ace Attorney - Dual Destinies Review', | 
					
						
							|  |  |  |  |             'description': 'md5:db88c0e7f47e9ea50df3271b9dc72e1d', | 
					
						
							| 
									
										
										
										
											2015-02-08 23:03:12 +06:00
										 |  |  |  |             'thumbnail': 're:^https?://.*\.jpg$', | 
					
						
							| 
									
										
										
										
											2016-01-31 00:12:45 +01:00
										 |  |  |  |             'uploader_id': 'UCJugRGo4STYMeFr5RoOShtQ', | 
					
						
							|  |  |  |  |             'uploader': 'Gamekings Vault', | 
					
						
							|  |  |  |  |             'upload_date': '20151123', | 
					
						
							| 
									
										
										
										
											2015-02-08 14:23:37 +01:00
										 |  |  |  |         }, | 
					
						
							| 
									
										
										
										
											2016-02-01 02:15:25 +08:00
										 |  |  |  |         'add_ie': ['Youtube'], | 
					
						
							| 
									
										
										
										
											2015-02-08 23:03:12 +06:00
										 |  |  |  |     }, { | 
					
						
							|  |  |  |  |         # vimeo video | 
					
						
							| 
									
										
										
										
											2016-01-31 00:03:23 +01:00
										 |  |  |  |         'url': 'http://www.gamekings.nl/videos/the-legend-of-zelda-majoras-mask/', | 
					
						
							| 
									
										
										
										
											2015-02-08 23:03:12 +06:00
										 |  |  |  |         'md5': '12bf04dfd238e70058046937657ea68d', | 
					
						
							| 
									
										
										
										
											2015-02-08 14:23:37 +01:00
										 |  |  |  |         'info_dict': { | 
					
						
							| 
									
										
										
										
											2015-02-08 23:03:12 +06:00
										 |  |  |  |             'id': 'the-legend-of-zelda-majoras-mask', | 
					
						
							| 
									
										
										
										
											2015-02-08 14:23:37 +01:00
										 |  |  |  |             'ext': 'mp4', | 
					
						
							| 
									
										
										
										
											2015-02-08 14:41:14 +01:00
										 |  |  |  |             'title': 'The Legend of Zelda: Majora’s Mask', | 
					
						
							| 
									
										
										
										
											2015-02-08 23:03:12 +06:00
										 |  |  |  |             'description': 'md5:9917825fe0e9f4057601fe1e38860de3', | 
					
						
							|  |  |  |  |             'thumbnail': 're:^https?://.*\.jpg$', | 
					
						
							|  |  |  |  |         }, | 
					
						
							| 
									
										
										
										
											2015-02-08 23:12:59 +06:00
										 |  |  |  |     }, { | 
					
						
							| 
									
										
										
										
											2016-01-31 00:03:23 +01:00
										 |  |  |  |         'url': 'http://www.gamekings.nl/nieuws/gamekings-extra-shelly-en-david-bereiden-zich-voor-op-de-livestream/', | 
					
						
							| 
									
										
										
										
											2015-02-08 23:12:59 +06:00
										 |  |  |  |         'only_matching': True, | 
					
						
							| 
									
										
										
										
											2015-02-08 23:03:12 +06:00
										 |  |  |  |     }] | 
					
						
							| 
									
										
										
										
											2013-11-13 10:30:41 +01:00
										 |  |  |  | 
 | 
					
						
							|  |  |  |  |     def _real_extract(self, url): | 
					
						
							| 
									
										
										
										
											2015-02-08 23:03:12 +06:00
										 |  |  |  |         video_id = self._match_id(url) | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |         webpage = self._download_webpage(url, video_id) | 
					
						
							| 
									
										
										
										
											2013-11-13 10:30:41 +01:00
										 |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-02-08 23:03:12 +06:00
										 |  |  |  |         playlist_id = self._search_regex( | 
					
						
							| 
									
										
										
										
											2016-02-01 02:19:03 +08:00
										 |  |  |  |             r'gogoVideo\([^,]+,\s*"([^"]+)', webpage, 'playlist id') | 
					
						
							| 
									
										
										
										
											2016-01-31 00:12:45 +01:00
										 |  |  |  | 
 | 
					
						
							|  |  |  |  |         # Check if a YouTube embed is used | 
					
						
							| 
									
										
										
										
											2016-02-01 02:19:03 +08:00
										 |  |  |  |         if YoutubeIE.suitable(playlist_id): | 
					
						
							| 
									
										
										
										
											2016-01-31 00:12:45 +01:00
										 |  |  |  |             return self.url_result(playlist_id, ie='Youtube') | 
					
						
							| 
									
										
										
										
											2015-02-08 15:34:37 +01:00
										 |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-02-08 23:03:12 +06:00
										 |  |  |  |         playlist = self._download_xml( | 
					
						
							|  |  |  |  |             'http://www.gamekings.tv/wp-content/themes/gk2010/rss_playlist.php?id=%s' % playlist_id, | 
					
						
							|  |  |  |  |             video_id) | 
					
						
							| 
									
										
										
										
											2015-02-08 15:34:37 +01:00
										 |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-02-08 16:44:25 +01:00
										 |  |  |  |         NS_MAP = { | 
					
						
							|  |  |  |  |             'jwplayer': 'http://rss.jwpcdn.com/' | 
					
						
							| 
									
										
										
										
											2015-02-08 23:03:12 +06:00
										 |  |  |  |         } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |         item = playlist.find('./channel/item') | 
					
						
							| 
									
										
										
										
											2015-02-08 15:34:37 +01:00
										 |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-02-08 23:03:12 +06:00
										 |  |  |  |         thumbnail = xpath_text(item, xpath_with_ns('./jwplayer:image', NS_MAP), 'thumbnail') | 
					
						
							|  |  |  |  |         video_url = item.find(xpath_with_ns('./jwplayer:source', NS_MAP)).get('file') | 
					
						
							| 
									
										
										
										
											2013-11-13 10:30:41 +01:00
										 |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-11-13 10:50:53 +01:00
										 |  |  |  |         return { | 
					
						
							|  |  |  |  |             'id': video_id, | 
					
						
							|  |  |  |  |             'url': video_url, | 
					
						
							|  |  |  |  |             'title': self._og_search_title(webpage), | 
					
						
							|  |  |  |  |             'description': self._og_search_description(webpage), | 
					
						
							| 
									
										
										
										
											2015-02-08 23:03:12 +06:00
										 |  |  |  |             'thumbnail': thumbnail, | 
					
						
							| 
									
										
										
										
											2013-11-13 10:50:53 +01:00
										 |  |  |  |         } |