mirror of
				https://github.com/yt-dlp/yt-dlp.git
				synced 2025-10-31 14:45:14 +00:00 
			
		
		
		
	[clyp] Improve and cleanup (Closes #7194)
This commit is contained in:
		| @@ -1,16 +1,15 @@ | |||||||
| # coding: utf-8 |  | ||||||
|  |  | ||||||
| from __future__ import unicode_literals | from __future__ import unicode_literals | ||||||
|  |  | ||||||
| import re |  | ||||||
|  |  | ||||||
| from .common import InfoExtractor | from .common import InfoExtractor | ||||||
|  | from ..utils import ( | ||||||
|  |     float_or_none, | ||||||
|  |     parse_iso8601, | ||||||
|  | ) | ||||||
|  |  | ||||||
|  |  | ||||||
| class ClypIE(InfoExtractor): | class ClypIE(InfoExtractor): | ||||||
|     _VALID_URL = r'https?://(?:www\.)?clyp\.it/(?P<id>[a-z0-9]+)' |     _VALID_URL = r'https?://(?:www\.)?clyp\.it/(?P<id>[a-z0-9]+)' | ||||||
|  |     _TEST = { | ||||||
|     _TESTS = [{ |  | ||||||
|         'url': 'https://clyp.it/ojz2wfah', |         'url': 'https://clyp.it/ojz2wfah', | ||||||
|         'md5': '1d4961036c41247ecfdcc439c0cddcbb', |         'md5': '1d4961036c41247ecfdcc439c0cddcbb', | ||||||
|         'info_dict': { |         'info_dict': { | ||||||
| @@ -18,40 +17,41 @@ class ClypIE(InfoExtractor): | |||||||
|             'ext': 'mp3', |             'ext': 'mp3', | ||||||
|             'title': 'Krisson80 - bits wip wip', |             'title': 'Krisson80 - bits wip wip', | ||||||
|             'description': '#Krisson80BitsWipWip #chiptune\n#wip', |             'description': '#Krisson80BitsWipWip #chiptune\n#wip', | ||||||
|  |             'duration': 263.21, | ||||||
|  |             'timestamp': 1443515251, | ||||||
|  |             'upload_date': '20150929', | ||||||
|         }, |         }, | ||||||
|     }, { |     } | ||||||
|         'url': 'https://clyp.it/ojz2wfah', |  | ||||||
|         'only_matching': True, |  | ||||||
|     }] |  | ||||||
|  |  | ||||||
|     def _real_extract(self, url): |     def _real_extract(self, url): | ||||||
|         audio_id = self._match_id(url) |         audio_id = self._match_id(url) | ||||||
|         api_url = 'https://api.clyp.it/' + audio_id |  | ||||||
|         metadata = self._download_json(api_url, audio_id) |         metadata = self._download_json( | ||||||
|  |             'https://api.clyp.it/%s' % audio_id, audio_id) | ||||||
|  |  | ||||||
|  |         formats = [] | ||||||
|  |         for secure in ('', 'Secure'): | ||||||
|  |             for ext in ('Ogg', 'Mp3'): | ||||||
|  |                 format_id = '%s%s' % (secure, ext) | ||||||
|  |                 format_url = metadata.get('%sUrl' % format_id) | ||||||
|  |                 if format_url: | ||||||
|  |                     formats.append({ | ||||||
|  |                         'url': format_url, | ||||||
|  |                         'format_id': format_id, | ||||||
|  |                         'vcodec': 'none', | ||||||
|  |                     }) | ||||||
|  |         self._sort_formats(formats) | ||||||
|  |  | ||||||
|         title = metadata['Title'] |         title = metadata['Title'] | ||||||
|  |         description = metadata.get('Description') | ||||||
|         description = None |         duration = float_or_none(metadata.get('Duration')) | ||||||
|         if metadata['Description']: description = metadata['Description'] |         timestamp = parse_iso8601(metadata.get('DateCreated')) | ||||||
|  |  | ||||||
|         duration = None |  | ||||||
|         if metadata['Duration']: duration = int(metadata['Duration']) |  | ||||||
|          |  | ||||||
|         formats = [ |  | ||||||
|             { |  | ||||||
|             'url': metadata['OggUrl'], |  | ||||||
|             'format_id': 'ogg', |  | ||||||
|             'preference': -2 |  | ||||||
|             },{ |  | ||||||
|             'url': metadata['Mp3Url'], |  | ||||||
|             'format_id': 'mp3', |  | ||||||
|             'preference': -1 |  | ||||||
|             }] |  | ||||||
|  |  | ||||||
|         return { |         return { | ||||||
|             'id': audio_id, |             'id': audio_id, | ||||||
|             'title': title, |             'title': title, | ||||||
|             'formats': formats, |  | ||||||
|             'description': description, |             'description': description, | ||||||
|             'duration': duration |             'duration': duration, | ||||||
|  |             'timestamp': timestamp, | ||||||
|  |             'formats': formats, | ||||||
|         } |         } | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user
	 Sergey M․
					Sergey M․