mirror of
				https://github.com/ytdl-org/youtube-dl
				synced 2025-10-31 09:43:32 +00:00 
			
		
		
		
	[camtube] Add extractor
This commit is contained in:
		
							parent
							
								
									77053237c5
								
							
						
					
					
						commit
						c3023e9f2e
					
				
							
								
								
									
										69
									
								
								youtube_dl/extractor/camtube.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										69
									
								
								youtube_dl/extractor/camtube.py
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,69 @@ | ||||
| # coding: utf-8 | ||||
| from __future__ import unicode_literals | ||||
| 
 | ||||
| from .common import InfoExtractor | ||||
| from ..utils import ( | ||||
|     int_or_none, | ||||
|     unified_timestamp, | ||||
| ) | ||||
| 
 | ||||
| 
 | ||||
| class CamTubeIE(InfoExtractor): | ||||
|     _VALID_URL = r'https?://(?:(?:www|api)\.)?camtube\.co/recordings?/(?P<id>[^/?#&]+)' | ||||
|     _TESTS = [{ | ||||
|         'url': 'https://camtube.co/recording/minafay-030618-1136-chaturbate-female', | ||||
|         'info_dict': { | ||||
|             'id': '42ad3956-dd5b-445a-8313-803ea6079fac', | ||||
|             'display_id': 'minafay-030618-1136-chaturbate-female', | ||||
|             'ext': 'mp4', | ||||
|             'title': 'minafay-030618-1136-chaturbate-female', | ||||
|             'duration': 1274, | ||||
|             'timestamp': 1528018608, | ||||
|             'upload_date': '20180603', | ||||
|         }, | ||||
|         'params': { | ||||
|             'skip_download': True, | ||||
|         }, | ||||
|     }] | ||||
| 
 | ||||
|     _API_BASE = 'https://api.camtube.co' | ||||
| 
 | ||||
|     def _real_extract(self, url): | ||||
|         display_id = self._match_id(url) | ||||
| 
 | ||||
|         token = self._download_json( | ||||
|             '%s/rpc/session/new' % self._API_BASE, display_id, | ||||
|             'Downloading session token')['token'] | ||||
| 
 | ||||
|         self._set_cookie('api.camtube.co', 'session', token) | ||||
| 
 | ||||
|         video = self._download_json( | ||||
|             '%s/recordings/%s' % (self._API_BASE, display_id), display_id, | ||||
|             headers={'Referer': url}) | ||||
| 
 | ||||
|         video_id = video['uuid'] | ||||
|         timestamp = unified_timestamp(video.get('createdAt')) | ||||
|         duration = int_or_none(video.get('duration')) | ||||
|         view_count = int_or_none(video.get('viewCount')) | ||||
|         like_count = int_or_none(video.get('likeCount')) | ||||
|         creator = video.get('stageName') | ||||
| 
 | ||||
|         formats = [{ | ||||
|             'url': '%s/recordings/%s/manifest.m3u8' | ||||
|                    % (self._API_BASE, video_id), | ||||
|             'format_id': 'hls', | ||||
|             'ext': 'mp4', | ||||
|             'protocol': 'm3u8_native', | ||||
|         }] | ||||
| 
 | ||||
|         return { | ||||
|             'id': video_id, | ||||
|             'display_id': display_id, | ||||
|             'title': display_id, | ||||
|             'timestamp': timestamp, | ||||
|             'duration': duration, | ||||
|             'view_count': view_count, | ||||
|             'like_count': like_count, | ||||
|             'creator': creator, | ||||
|             'formats': formats, | ||||
|         } | ||||
| @ -147,6 +147,7 @@ from .camdemy import ( | ||||
|     CamdemyFolderIE | ||||
| ) | ||||
| from .cammodels import CamModelsIE | ||||
| from .camtube import CamTubeIE | ||||
| from .camwithher import CamWithHerIE | ||||
| from .canalplus import CanalplusIE | ||||
| from .canalc2 import Canalc2IE | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user
	 Sergey M․
						Sergey M․