如何在Python中对视频的二进制内容进行URL编码?

1 投票
1 回答
745 浏览
提问于 2025-04-17 16:30

我想通过API把视频上传到Tumblr,使用的是Tumblpy库

我的代码是这样的:

import requests
r = requests.get(video-url)
f = {'data':r.content}
dat = urllib.urlencode(f)


t.post('post', blog_url='http://tumblrname.tumblr.com/',params={'type':'video', 
            'title':post.title, 'slug': post.slug,'date':post.date,'data':dat,'tags':post.tagscsv,
                'caption': post.body_html}) #t is TumblPy instance

不过,我一直没有成功。我觉得我可能没有正确处理二进制内容的编码,这样才能让帖子成功发布,但我不太确定。

1 个回答

1

可以推测,这个过程会和你上传照片差不多。在这种情况下,库需要一个类似文件的对象。一个 requests 的响应可以很好地充当一个类似文件的对象:

import requests
r = requests.get(video_url)

t.post('post', blog_url='http://tumblrname.tumblr.com/', 
    params={'type': 'video', 'title': post.title, 'slug': post.slug, 
            'date': post.date, 'data': r.raw, 'tags': post.tagscsv,
            'caption': post.body_html})

这里的 r.raw 提供了一个类似文件的对象,当你读取它时,会得到从 video_url 读取到的视频数据。

撰写回答