]>
Commit | Line | Data |
---|---|---|
59fc531f JMF |
1 | import re |
2 | ||
3 | from .common import InfoExtractor | |
4 | ||
5 | class InstagramIE(InfoExtractor): | |
6 | _VALID_URL = r'(?:http://)?instagram.com/p/(.*?)/' | |
7 | _TEST = { | |
73b57f0c | 8 | u'url': u'http://instagram.com/p/aye83DjauH/?foo=bar#abc', |
59fc531f JMF |
9 | u'file': u'aye83DjauH.mp4', |
10 | u'md5': u'0d2da106a9d2631273e192b372806516', | |
11 | u'info_dict': { | |
12 | u"uploader_id": u"naomipq", | |
3f402177 JMF |
13 | u"title": u"Video by naomipq", |
14 | u'description': u'md5:1f17f0ab29bd6fe2bfad705f58de3cb8', | |
59fc531f JMF |
15 | } |
16 | } | |
17 | ||
18 | def _real_extract(self, url): | |
19 | mobj = re.match(self._VALID_URL, url) | |
20 | video_id = mobj.group(1) | |
21 | webpage = self._download_webpage(url, video_id) | |
3f402177 JMF |
22 | uploader_id = self._search_regex(r'"owner":{"username":"(.+?)"', |
23 | webpage, u'uploader id', fatal=False) | |
24 | desc = self._search_regex(r'"caption":"(.*?)"', webpage, u'description', | |
25 | fatal=False) | |
59fc531f JMF |
26 | |
27 | return [{ | |
28 | 'id': video_id, | |
46720279 | 29 | 'url': self._og_search_video_url(webpage), |
3f402177 JMF |
30 | 'ext': 'mp4', |
31 | 'title': u'Video by %s' % uploader_id, | |
46720279 | 32 | 'thumbnail': self._og_search_thumbnail(webpage), |
3f402177 JMF |
33 | 'uploader_id' : uploader_id, |
34 | 'description': desc, | |
59fc531f | 35 | }] |