diff --git a/youtube_dl/extractor/extractors.py b/youtube_dl/extractor/extractors.py index 6e8fc3961..bcb01c85b 100644 --- a/youtube_dl/extractor/extractors.py +++ b/youtube_dl/extractor/extractors.py @@ -1475,6 +1475,7 @@ from .vlive import ( VLivePostIE, VLiveChannelIE, ) +from .vocaroo import VocarooIE from .vodlocker import VodlockerIE from .vodpl import VODPlIE from .vodplatform import VODPlatformIE diff --git a/youtube_dl/extractor/vocaroo.py b/youtube_dl/extractor/vocaroo.py new file mode 100644 index 000000000..5f5b7699f --- /dev/null +++ b/youtube_dl/extractor/vocaroo.py @@ -0,0 +1,37 @@ +# coding: utf-8 +from __future__ import unicode_literals + +from .common import InfoExtractor + + +class VocarooIE(InfoExtractor): + _VALID_URL = r'https?://(?:www\.)?(?:vocaroo\.com|voca\.ro)/(?:embed/)?(?P[a-zA-Z0-9]{12})' + _TESTS = [ + { + 'url': 'https://vocaroo.com/1e976QE4oDoy', + 'md5': '9ccf2014af38890e9e10450c901c17a6', + 'info_dict': { + 'id': '1e976QE4oDoy', + 'ext': 'mp3', + 'title': 'Vocaroo - 1e976QE4oDoy', + } + }, + { + 'url': 'https://vocaroo.com/embed/1e976QE4oDoy?autoplay=0', + 'only_matching': True + }, + { + 'url': 'https://voca.ro/1ctMANMty97s', + 'only_matching': True + }, + ] + + def _real_extract(self, url): + audio_id = self._match_id(url) + + return { + 'id': audio_id, + 'title': "Vocaroo - {}".format(audio_id), + 'url': 'https://media1.vocaroo.com/mp3/{}'.format(audio_id), + 'ext': 'mp3' + }