python - 如何使用 Python 在二进制状态下编辑视频元数据
问题描述
我想在保存视频的 endit 元数据之前使用请求库从 Internet 下载视频文件。
import requests
url = 'https://www.sample-videos.com/video123/mp4/720/big_buck_bunny_720p_5mb.mp4'
r = requests.get(url, stream=True)
with open('video.mp4', 'wb') as file:
file.write(r.content)
我只想在保存文件之前将元数据更改为视频。
解决方案
我不认为这是可能的。我的方法是先下载视频,然后考虑使用库,例如tagpy
或mutagen
.
我会推荐mutagen
,因为我发现它有一个很好的文档
有关安装步骤,请参见此处mutagen
示例代码使用mutagen
>>> import mutagen
>>> mutagen.File("11. The Way It Is.ogg")
{'album': [u'Always Outnumbered, Never Outgunned'],
'title': [u'The Way It Is'], 'artist': [u'The Prodigy'],
'tracktotal': [u'12'], 'albumartist': [u'The Prodigy'],'date': [u'2004'],
'tracknumber': [u'11'],
>>> _.info.pprint()
u'Ogg Vorbis, 346.43 seconds, 499821 bps'
>>>
然后要更改标题,您只需访问字典键并更改它的值
from mutagen.flac import FLAC
audio = FLAC("example.flac")
audio["title"] = u"An example"
audio.pprint()
audio.save()
推荐阅读
- google-apps-script - file.MoveTo 不会移动共享文件夹中的文件
- c# - 如何将一个数据表列的值除以标签文本的值?
- php - Laravel - Eloquent - 如何汇总相关数据并查询它?
- python - 如何关联这两个枚举?
- python - loadtxt 到结构化数组并添加一列,其中包含来自文件名的值
- python - 部署在 uWSGI 服务器中时 Flask 线程不工作
- flutter - 将 Containers 数组设置为 Stack 视图 Flutter
- django - 如何在 django 中使用 modelviewset 更新登录用户的数据
- java - 在 Apache Spark 中重命名列后使用列
- java - 单元测试中的 Spring Boot @Autowired 返回 NullPointerException