如何从Instagram Python客户端检索视频?
我用它从Instagram中检索数据。我创建了一个Instagram帐户,用于测试,其中我有三种媒体内容:两张图像和一段视频。在使用Python控制台使用Python Instagram客户端发出请求后,我得到下一个响应(django shell): 我检查了所有媒体对象,其中没有视频信息,尽管最后一个媒体对象是视频。所有三个对象都返回一个名为如何从Instagram Python客户端检索视频?,python,api,video,client,instagram,Python,Api,Video,Client,Instagram,我用它从Instagram中检索数据。我创建了一个Instagram帐户,用于测试,其中我有三种媒体内容:两张图像和一段视频。在使用Python控制台使用Python Instagram客户端发出请求后,我得到下一个响应(django shell): 我检查了所有媒体对象,其中没有视频信息,尽管最后一个媒体对象是视频。所有三个对象都返回一个名为images的属性;最后一个媒体对象,尽管如我前面所说是一个视频,但也有一个images属性,具有不同分辨率的视频快照。阅读Instagram Rest
images
的属性;最后一个媒体对象,尽管如我前面所说是一个视频,但也有一个images
属性,具有不同分辨率的视频快照。阅读Instagram Rest API后,我的理解是,最后一个媒体对象应该有一个名为videos
的属性,这将是一个dict,视频信息将在那里(基本上我对检索视频的URL感兴趣)
我的问题是:Python Instagram客户端是否已经过时,因此它根本不返回任何视频信息,而我必须使用rest api获取视频信息?还是我的请求有问题
提前谢谢你没有做错任何事。Instagram的Python API充满了缺失的功能和bug。我已经在我自己的本地版本上修复了它们,但我还没有将任何内容推送到官方的github,我不确定他们是否会接受这些更改 通常情况下,他们的API客户机在将数据转换回模型时正在剥离数据。我不确定他们为什么不只是使用将字典转换为点符号模型的东西。它完全是手工操作的,而且充满了错误/糟糕的Python IMO。无论如何,要点是数据都在那里,但是当从字典转换到专有API模型时,他们忽略了它 以下是我发现您尝试做的事情有问题的地方:
#add the videos
if "videos" in entry:
new_media.videos = {}
for version, version_info in entry['videos'].iteritems():
new_media.videos[version] = Video.object_from_dictionary(version_info)
#add the type
new_media.type = entry.get('type')
#Add this class as well for the videos....
class Video(ApiModel):
def __init__(self, url, width, height):
self.url = url
self.height = height
self.width = width
def __unicode__(self):
return "Video: %s" % self.url
#add the videos
if "videos" in entry:
new_media.videos = {}
for version, version_info in entry['videos'].iteritems():
new_media.videos[version] = Video.object_from_dictionary(version_info)
#add the type
new_media.type = entry.get('type')
#Add this class as well for the videos....
class Video(ApiModel):
def __init__(self, url, width, height):
self.url = url
self.height = height
self.width = width
def __unicode__(self):
return "Video: %s" % self.url