projects
/
youtube-dl
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Merge pull request #7320 from remitamine/adobetv
[youtube-dl]
/
youtube_dl
/
extractor
/
instagram.py
diff --git
a/youtube_dl/extractor/instagram.py
b/youtube_dl/extractor/instagram.py
index 65f6ca103973bb25c016ae92fcb551c65def31d1..c158f206410467e8c66a8bc2526d0436cc1a4e3c 100644
(file)
--- a/
youtube_dl/extractor/instagram.py
+++ b/
youtube_dl/extractor/instagram.py
@@
-3,13
+3,16
@@
from __future__ import unicode_literals
import re
from .common import InfoExtractor
import re
from .common import InfoExtractor
-from ..utils import int_or_none
+from ..utils import (
+ int_or_none,
+ limit_length,
+)
class InstagramIE(InfoExtractor):
class InstagramIE(InfoExtractor):
- _VALID_URL = r'https?://
instagram\.com/p/(?P<id>[\da-zA-Z
]+)'
- _TEST
=
{
- 'url': 'http://instagram.com/p/aye83DjauH/?foo=bar#abc',
+ _VALID_URL = r'https?://
(?:www\.)?instagram\.com/p/(?P<id>[^/?#&
]+)'
+ _TEST
S = [
{
+ 'url': 'http
s
://instagram.com/p/aye83DjauH/?foo=bar#abc',
'md5': '0d2da106a9d2631273e192b372806516',
'info_dict': {
'id': 'aye83DjauH',
'md5': '0d2da106a9d2631273e192b372806516',
'info_dict': {
'id': 'aye83DjauH',
@@
-18,7
+21,10
@@
class InstagramIE(InfoExtractor):
'title': 'Video by naomipq',
'description': 'md5:1f17f0ab29bd6fe2bfad705f58de3cb8',
}
'title': 'Video by naomipq',
'description': 'md5:1f17f0ab29bd6fe2bfad705f58de3cb8',
}
- }
+ }, {
+ 'url': 'https://instagram.com/p/-Cmh1cukG2/',
+ 'only_matching': True,
+ }]
def _real_extract(self, url):
video_id = self._match_id(url)
def _real_extract(self, url):
video_id = self._match_id(url)
@@
-41,11
+47,11
@@
class InstagramIE(InfoExtractor):
class InstagramUserIE(InfoExtractor):
class InstagramUserIE(InfoExtractor):
- _VALID_URL = r'http://instagram\.com/(?P<username>[^/]{2,})/?(?:$|[?#])'
+ _VALID_URL = r'http
s
://instagram\.com/(?P<username>[^/]{2,})/?(?:$|[?#])'
IE_DESC = 'Instagram user profile'
IE_NAME = 'instagram:user'
_TEST = {
IE_DESC = 'Instagram user profile'
IE_NAME = 'instagram:user'
_TEST = {
- 'url': 'http://instagram.com/porsche',
+ 'url': 'http
s
://instagram.com/porsche',
'info_dict': {
'id': 'porsche',
'title': 'porsche',
'info_dict': {
'id': 'porsche',
'title': 'porsche',
@@
-100,11
+106,13
@@
class InstagramUserIE(InfoExtractor):
thumbnails_el = it.get('images', {})
thumbnail = thumbnails_el.get('thumbnail', {}).get('url')
thumbnails_el = it.get('images', {})
thumbnail = thumbnails_el.get('thumbnail', {}).get('url')
- title = it.get('caption', {}).get('text', it['id'])
+ # In some cases caption is null, which corresponds to None
+ # in python. As a result, it.get('caption', {}) gives None
+ title = (it.get('caption') or {}).get('text', it['id'])
entries.append({
'id': it['id'],
entries.append({
'id': it['id'],
- 'title':
title
,
+ 'title':
limit_length(title, 80)
,
'formats': formats,
'thumbnail': thumbnail,
'webpage_url': it.get('link'),
'formats': formats,
'thumbnail': thumbnail,
'webpage_url': it.get('link'),