]>
Raphaƫl G. Git Repositories - youtubedl/blob - youtube_dl/extractor/iconosquare.py
1 from __future__
import unicode_literals
3 from .common
import InfoExtractor
11 class IconosquareIE(InfoExtractor
):
12 _VALID_URL
= r
'https?://(?:www\.)?(?:iconosquare\.com|statigr\.am)/p/(?P<id>[^/]+)'
14 'url': 'http://statigr.am/p/522207370455279102_24101272',
15 'md5': '6eb93b882a3ded7c378ee1d6884b1814',
17 'id': '522207370455279102_24101272',
19 'title': 'Instagram photo by @aguynamedpatrick (Patrick Janelle)',
20 'description': 'md5:644406a9ec27457ed7aa7a9ebcd4ce3d',
21 'timestamp': 1376471991,
22 'upload_date': '20130814',
23 'uploader': 'aguynamedpatrick',
24 'uploader_id': '24101272',
30 def _real_extract(self
, url
):
31 video_id
= self
._match
_id
(url
)
33 webpage
= self
._download
_webpage
(url
, video_id
)
35 media
= self
._parse
_json
(
36 get_element_by_id('mediaJson', webpage
),
41 'format_id': format_id
,
42 'width': int_or_none(f
.get('width')),
43 'height': int_or_none(f
.get('height'))
44 } for format_id
, f
in media
['videos'].items()]
45 self
._sort
_formats
(formats
)
47 title
= remove_end(self
._og
_search
_title
(webpage
), ' - via Iconosquare')
49 timestamp
= int_or_none(media
.get('created_time') or media
.get('caption', {}).get('created_time'))
50 description
= media
.get('caption', {}).get('text')
52 uploader
= media
.get('user', {}).get('username')
53 uploader_id
= media
.get('user', {}).get('id')
55 comment_count
= int_or_none(media
.get('comments', {}).get('count'))
56 like_count
= int_or_none(media
.get('likes', {}).get('count'))
61 'width': int_or_none(t
.get('width')),
62 'height': int_or_none(t
.get('height'))
63 } for thumbnail_id
, t
in media
.get('images', {}).items()]
66 'id': comment
.get('id'),
67 'text': comment
['text'],
68 'timestamp': int_or_none(comment
.get('created_time')),
69 'author': comment
.get('from', {}).get('full_name'),
70 'author_id': comment
.get('from', {}).get('username'),
71 } for comment
in media
.get('comments', {}).get('data', []) if 'text' in comment
]
76 'description': description
,
77 'thumbnails': thumbnails
,
78 'timestamp': timestamp
,
80 'uploader_id': uploader_id
,
81 'comment_count': comment_count
,
82 'like_count': like_count
,