摘要:事情的起因是这样的:因为想下载一个 B 站视频,用了某个浏览器插件后,下载下来的视频很糊,而且声音和视频分离。用剪映把视频和声音拼在一起,文件大小又太大,索性自己用 Windsurf 攒一个,以后下载视频都不求人。
事情的起因是这样的:因为想下载一个 B 站视频,用了某个浏览器插件后,下载下来的视频很糊,而且声音和视频分离。用剪映把视频和声音拼在一起,文件大小又太大,索性自己用 Windsurf 攒一个,以后下载视频都不求人。
Prompt:
https://www.bilibili.com/video/BV1DJ411X7vg/?spm_id_from=333.1007.top_right_bar_window_default_collection.content.click&vd_source=7cf1f568229c6f5b4a7c23f5a2e85cbc
帮我下载链接中的视频
非常言简意赅,AI 随后开始理解:
看到这,我觉得苗头不对,它还没有试图理解链接内容就开始鼓捣,大概率会出错,赶紧拽回来:
Prompt:先解析下该链接的内容再看怎么下载里面的视频
AI 继续开始分析,随后调用了 ddg-search / fetch_content :
AI 给我列出了四种方案,怕麻烦,我选择了第四种。随后系统开始检查我是否安装了依赖项:Python 和 pip
接下来它使用 pip 命令安装 you-get,并且自己添加了环境变量。
接着,系统调用 you-get,开始下载视频,并列出了视频的清晰度和格式且自行选择了一个最高清晰度但内存更小的方式。
这时候视频已经下载成功了,并且保存在了文件夹中,沿着目录就可以找到。
但这里仍然存在一个问题,视频下载下来是视频同音频分离的,得想办法合在一起。
幸好,AI 自己也意识到这个问题,给出了一个方案,使用 FFmpeg 工具转。当然它发现没有这个工具后,又转向了另一种方式:使用 Python 的 moviepy 库。
到这里,AI 的最大问题显示出来:当它在一个方向上没有进展时,会迅速改弦更张。实际上,往往是这些岔道选择,让路越走越偏。
接下来,系统先是安装了 moivepy 库,然后创建了一个 Python 脚本来合并视频,结果发现一个叫 moviepy.editor 的模块缺失,于是再一次反悔,使用 Python 的一个内置模块合并视频(意味着下载的库白瞎)。
运行脚本后,提示我成功合成了一个新文件,结果我打开一看,文件显示不兼容… 作孽啊,又怕问题抛回去,系统又又又叛变了,要求尝试使用 VLC 播放器播放文件…
路是越走越偏了,我感觉拉急刹车:
下载 ffmpeg,进行格式转换。只允许这一种尝试方式,不要轻易放弃。请自行设置测试方式,确保方案有效
不约束是不行了,我就要让它一条走走到黑。
接下来,系统顺利下载了 ffmpeg 并安装,并使用它分析已下载的视频格式。
最后找到了原因:B 站使用了 DASH 格式,所以视频和音频会分离下载。
接下来,它自行使用 ffmpeg 的相关命令合并视频,并检查了合并后的视频是否可正常播放,最后成功合并视频。
到此,大功告成。以后,再想下载 B 站视频,我只需要:
告诉 AI 我想使用 you-get 下载视频,并附上下载链接;
下载完成后,使用 ffmpeg 合并视频和音频;
这个案例带来的收获是:要约束大模型,不要让它遇事畏缩,只失败过一次就立马尝试别的方案。忘了从哪儿看来的准则:
先让 AI 探索对应的 3-5 种的方案;
分析这些方案的优劣势和弊端;
分别尝试(或让用户决定),确保每条路都有方案,而非中途更改;
编写测试用例并要求 AI 通过;
以上。
本文由人人都是产品经理作者【善宝橘】,【善宝橘】,原创/授权 发布于人人都是产品经理,未经许可,禁止转载。
题图来自Unsplash,基于 CC0 协议。
来源:人人都是产品经理一点号