Browse Source

Add IGNIE

Only for www.ign.com, it doesn't support country specific versions (like es.ign.com)
master
Jaime Marquínez Ferrándiz 11 years ago
parent
commit
2ef648d3d3
2 changed files with 46 additions and 0 deletions
  1. 1
      youtube_dl/extractor/__init__.py
  2. 45
      youtube_dl/extractor/ign.py

1
youtube_dl/extractor/__init__.py

@ -27,6 +27,7 @@ from .googlesearch import GoogleSearchIE
from .hotnewhiphop import HotNewHipHopIE
from .howcast import HowcastIE
from .hypem import HypemIE
from .ign import IGNIE
from .ina import InaIE
from .infoq import InfoQIE
from .instagram import InstagramIE

45
youtube_dl/extractor/ign.py

@ -0,0 +1,45 @@
import re
import json
from .common import InfoExtractor
from ..utils import (
determine_ext,
)
class IGNIE(InfoExtractor):
_VALID_URL = r'http://www.ign.com/videos/.+/(?P<name>.+)'
IE_NAME = u'ign.com'
_TEST = {
u'url': u'http://www.ign.com/videos/2013/06/05/the-last-of-us-review',
u'file': u'8f862beef863986b2785559b9e1aa599.mp4',
u'md5': u'eac8bdc1890980122c3b66f14bdd02e9',
u'info_dict': {
u'title': u'The Last of Us Review',
u'description': u'md5:c8946d4260a4d43a00d5ae8ed998870c',
}
}
def _real_extract(self, url):
mobj = re.match(self._VALID_URL, url)
name = mobj.group('name')
config_url = url + '.config'
webpage = self._download_webpage(url, name)
config = json.loads(self._download_webpage(config_url, name, u'Downloading video info'))
self.report_extraction(name)
description = self._html_search_regex(r'<span class="page-object-description">(.+?)</span>',
webpage, 'video description', flags=re.DOTALL)
media = config['playlist']['media']
video_url = media['url']
return {'id': media['metadata']['videoId'],
'url': video_url,
'ext': determine_ext(video_url),
'title': media['metadata']['title'],
'description': description,
'thumbnail': media['poster'][0]['url'].replace('{size}', 'small'),
}
Loading…
Cancel
Save