mirror of
				https://github.com/ytdl-org/youtube-dl
				synced 2025-10-30 17:23:31 +00:00 
			
		
		
		
	Merge remote-tracking branch 'pachacamac/vodlocker'
This commit is contained in:
		
						commit
						c09cbf0ed9
					
				| @ -342,6 +342,7 @@ from .vine import ( | ||||
| ) | ||||
| from .viki import VikiIE | ||||
| from .vk import VKIE | ||||
| from .vodlocker import VodlockerIE | ||||
| from .vube import VubeIE | ||||
| from .vuclip import VuClipIE | ||||
| from .vulture import VultureIE | ||||
|  | ||||
							
								
								
									
										66
									
								
								youtube_dl/extractor/vodlocker.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										66
									
								
								youtube_dl/extractor/vodlocker.py
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,66 @@ | ||||
| # -*- coding: utf-8 -*- | ||||
| from __future__ import unicode_literals | ||||
| 
 | ||||
| import re | ||||
| import time | ||||
| from .common import InfoExtractor | ||||
| from ..utils import ( | ||||
|     determine_ext, | ||||
|     compat_urllib_parse, | ||||
|     compat_urllib_request, | ||||
| ) | ||||
| 
 | ||||
| 
 | ||||
| class VodlockerIE(InfoExtractor): | ||||
|     _VALID_URL = r'https?://(?:www\.)?vodlocker.com/(?P<id>[0-9a-zA-Z]+)(?:\..*?)?' | ||||
| 
 | ||||
|     _TESTS = [{ | ||||
|         'url': 'http://vodlocker.com/e8wvyzz4sl42', | ||||
|         'md5': 'ce0c2d18fa0735f1bd91b69b0e54aacf', | ||||
|         'info_dict': { | ||||
|             'id': 'e8wvyzz4sl42', | ||||
|             'ext': 'mp4', | ||||
|             'title': 'Germany vs Brazil', | ||||
|             'thumbnail': 're:http://.*\.jpg', | ||||
|         }, | ||||
|     }] | ||||
| 
 | ||||
|     def _real_extract(self, url): | ||||
|         mobj = re.match(self._VALID_URL, url) | ||||
|         video_id = mobj.group('id') | ||||
| 
 | ||||
|         url = 'http://vodlocker.com/%s' % video_id | ||||
| 
 | ||||
|         webpage = self._download_webpage(url, video_id) | ||||
| 
 | ||||
|         fields = dict(re.findall(r'''(?x)<input\s+ | ||||
|             type="hidden"\s+ | ||||
|             name="([^"]+)"\s+ | ||||
|             (?:id="[^"]+"\s+)? | ||||
|             value="([^"]*)" | ||||
|             ''', webpage)) | ||||
| 
 | ||||
|         if fields['op'] == 'download1': | ||||
|             time.sleep(3) #they do detect when requests happen too fast! | ||||
|             post = compat_urllib_parse.urlencode(fields) | ||||
|             req = compat_urllib_request.Request(url, post) | ||||
|             req.add_header('Content-type', 'application/x-www-form-urlencoded') | ||||
|             webpage = self._download_webpage(req, video_id, 'Downloading video page') | ||||
| 
 | ||||
|         title = self._search_regex(r'id="file_title".*?>\s*(.*?)\s*<span', webpage, 'title') | ||||
|         thumbnail = self._search_regex(r'image:\s*"(http[^\"]+)",', webpage, 'thumbnail') | ||||
|         url = self._search_regex(r'file:\s*"(http[^\"]+)",', webpage, 'file url') | ||||
| 
 | ||||
|         formats = [{ | ||||
|             'format_id': 'sd', | ||||
|             'url': url, | ||||
|             'ext': determine_ext(url), | ||||
|             'quality': 1, | ||||
|         }] | ||||
| 
 | ||||
|         return { | ||||
|             'id': video_id, | ||||
|             'title': title, | ||||
|             'thumbnail': thumbnail, | ||||
|             'formats': formats, | ||||
|         } | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user
	 Philipp Hagemeister
						Philipp Hagemeister