diff options
| author | Jaime Marquínez Ferrándiz <jaime.marquinez.ferrandiz@gmail.com> | 2013-07-01 21:08:54 +0200 | 
|---|---|---|
| committer | Jaime Marquínez Ferrándiz <jaime.marquinez.ferrandiz@gmail.com> | 2013-07-01 21:08:54 +0200 | 
| commit | 59fc531f7824725bec716f5517cba48c9f95bc44 (patch) | |
| tree | 63bf2c66ab86374d7344d991360e2f3b0f9543fb | |
| parent | 5c44c154381f1b90883af1c300cd813d82e5fa3b (diff) | |
Add InstagramIE (related #904)
| -rw-r--r-- | youtube_dl/extractor/__init__.py | 1 | ||||
| -rw-r--r-- | youtube_dl/extractor/instagram.py | 42 | 
2 files changed, 43 insertions, 0 deletions
| diff --git a/youtube_dl/extractor/__init__.py b/youtube_dl/extractor/__init__.py index ac2e5f0e7..41efc57d4 100644 --- a/youtube_dl/extractor/__init__.py +++ b/youtube_dl/extractor/__init__.py @@ -25,6 +25,7 @@ from .howcast import HowcastIE  from .hypem import HypemIE  from .ina import InaIE  from .infoq import InfoQIE +from .instagram import InstagramIE  from .jukebox import JukeboxIE  from .justintv import JustinTVIE  from .keek import KeekIE diff --git a/youtube_dl/extractor/instagram.py b/youtube_dl/extractor/instagram.py new file mode 100644 index 000000000..6ae704efd --- /dev/null +++ b/youtube_dl/extractor/instagram.py @@ -0,0 +1,42 @@ +import re + +from .common import InfoExtractor + +class InstagramIE(InfoExtractor): +    _VALID_URL = r'(?:http://)?instagram.com/p/(.*?)/' +    _TEST = { +        u'url': u'http://instagram.com/p/aye83DjauH/#', +        u'file': u'aye83DjauH.mp4', +        u'md5': u'0d2da106a9d2631273e192b372806516', +        u'info_dict': { +            u"uploader_id": u"naomipq",  +            u"title": u"Video by naomipq" +        } +    } + +    def _real_extract(self, url): +        mobj = re.match(self._VALID_URL, url) +        video_id = mobj.group(1) +        webpage = self._download_webpage(url, video_id) +        video_url = self._html_search_regex( +            r'<meta property="og:video" content="(.+?)"', +            webpage, u'video URL') +        thumbnail_url = self._html_search_regex( +            r'<meta property="og:image" content="(.+?)" />', +            webpage, u'thumbnail URL', fatal=False) +        html_title = self._html_search_regex( +            r'<title>(.+?)</title>', +            webpage, u'title', flags=re.DOTALL) +        title = re.sub(u'(?: *\(Videos?\))? \u2022 Instagram$', '', html_title).strip() +        uploader_id = self._html_search_regex(r'content="(.*?)\'s video on Instagram', +            webpage, u'uploader name', fatal=False) +        ext = 'mp4' + +        return [{ +            'id':        video_id, +            'url':       video_url, +            'ext':       ext, +            'title':     title, +            'thumbnail': thumbnail_url, +            'uploader_id' : uploader_id +        }] | 
