from __future__ import unicode_literals from .common import InfoExtractor from .youtube import YoutubeIE class FreespeechIE(InfoExtractor): IE_NAME = 'freespeech.org' _VALID_URL = r'https?://(?:www\.)?freespeech\.org/stories/(?P<id>.+)' _TEST = { 'add_ie': ['Youtube'], 'url': 'http://www.freespeech.org/stories/fcc-announces-net-neutrality-rollback-whats-stake/', 'info_dict': { 'id': 'waRk6IPqyWM', 'ext': 'mp4', 'title': 'What\'s At Stake - Net Neutrality Special', 'description': 'Presented by MNN and FSTV', 'upload_date': '20170728', 'uploader_id': 'freespeechtv', 'uploader': 'freespeechtv', }, } def _real_extract(self, url): display_id = self._match_id(url) webpage = self._download_webpage(url, display_id) youtube_url = self._search_regex( r'data-video-url="([^"]+)"', webpage, 'youtube url') return self.url_result(youtube_url, YoutubeIE.ie_key())