Browse Source

Add an extractor for freespeech.org (closes #2234)

totalwebcasting
Jaime Marquínez Ferrándiz 11 years ago
parent
commit
352d08e3e5
2 changed files with 38 additions and 0 deletions
  1. +1
    -0
      youtube_dl/extractor/__init__.py
  2. +37
    -0
      youtube_dl/extractor/freespeech.py

+ 1
- 0
youtube_dl/extractor/__init__.py View File

@ -72,6 +72,7 @@ from .francetv import (
CultureboxIE, CultureboxIE,
) )
from .freesound import FreesoundIE from .freesound import FreesoundIE
from .freespeech import FreespeechIE
from .funnyordie import FunnyOrDieIE from .funnyordie import FunnyOrDieIE
from .gamekings import GamekingsIE from .gamekings import GamekingsIE
from .gamespot import GameSpotIE from .gamespot import GameSpotIE


+ 37
- 0
youtube_dl/extractor/freespeech.py View File

@ -0,0 +1,37 @@
from __future__ import unicode_literals
import re
import json
from .common import InfoExtractor
class FreespeechIE(InfoExtractor):
IE_NAME = 'freespeech.org'
_VALID_URL = r'https://www.freespeech.org/video/(?P<title>.+)'
_TEST = {
'add_ie': ['Youtube'],
'url': 'https://www.freespeech.org/video/obama-romney-campaign-colorado-ahead-debate-0',
'info_dict': {
'id': 'poKsVCZ64uU',
'ext': 'mp4',
'title': 'Obama, Romney Campaign in Colorado Ahead of Debate',
'description': 'Obama, Romney Campaign in Colorado Ahead of Debate',
'uploader': 'freespeechtv',
'uploader_id': 'freespeechtv',
'upload_date': '20121002',
},
}
def _real_extract(self, url):
mobj = re.match(self._VALID_URL, url)
title = mobj.group('title')
webpage = self._download_webpage(url, title)
info_json = self._search_regex(r'jQuery.extend\(Drupal.settings, ({.*?})\);', webpage, 'info')
info = json.loads(info_json)
return {
'_type': 'url',
'url': info['jw_player']['basic_video_node_player']['file'],
'ie_key': 'Youtube',
}

Loading…
Cancel
Save