[clyp.it] Extract ID idiomatically and make duration and description optional

This commit is contained in:
Cian Ruane 2015-10-17 13:57:10 +01:00
parent fc82521e62
commit 05fbdb8a69

View File

@ -8,7 +8,7 @@ from .common import InfoExtractor
class ClypIE(InfoExtractor):
_VALID_URL = r'https://clyp\.it/........'
_VALID_URL = r'https?://(?:www\.)?clyp\.it/(?P<id>[a-z0-9]+)'
_TESTS = [{
'url': 'https://clyp.it/ojz2wfah',
@ -25,13 +25,17 @@ class ClypIE(InfoExtractor):
}]
def _real_extract(self, url):
video_id = url.replace("https://clyp.it/", "")
api_url = 'https://api.clyp.it/' + video_id
metadata = self._download_json(api_url, video_id)
audio_id = self._match_id(url)
api_url = 'https://api.clyp.it/' + audio_id
metadata = self._download_json(api_url, audio_id)
title = metadata['Title']
description = metadata['Description']
duration = int(metadata['Duration'])
description = None
if metadata['Description']: description = metadata['Description']
duration = None
if metadata['Duration']: duration = int(metadata['Duration'])
formats = [
{
@ -45,7 +49,7 @@ class ClypIE(InfoExtractor):
}]
return {
'id': video_id,
'id': audio_id,
'title': title,
'formats': formats,
'description': description,