首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >网友提问:如何保存知乎回答里的视频,Python大神亲自操刀实现

网友提问:如何保存知乎回答里的视频,Python大神亲自操刀实现

作者头像
Python编程大咖
发布2019-03-26 11:29:11
8300
发布2019-03-26 11:29:11
举报
文章被收录于专栏:Python编程大咖Python编程大咖
网友提问:如何保存知乎回答里的视频,Python大神亲自操刀实现
网友提问:如何保存知乎回答里的视频,Python大神亲自操刀实现

之前在知乎看到有人问如何保存知乎回答里的视频,于是想着写个脚本直接根据知乎回答的链接下载该回答里的视频,这样岂不是十分简单方便?(因为我看到那个提问下方的回答操作起来都挺“麻烦”的)

让我们愉快地开始吧~

声明:提供的所有脚本仅供学习交流,禁止用于其他。

网友提问:如何保存知乎回答里的视频,Python大神亲自操刀实现
网友提问:如何保存知乎回答里的视频,Python大神亲自操刀实现

开发工具

Python版本:3.6.4

相关模块:

PIL模块;

requests模块;

click模块;

以及一些Python自带的模块。

环境搭建

安装Python并添加到环境变量,pip安装需要的相关模块即可。

原理简介

首先,请求给定的知乎回答链接,例如:

'https://www.zhihu.com/question/21395276/answer/425130152'

利用正则表达式提取请求结果页面中的视频信息(也就是视频ID,ID数量与该回答中的视频数量一致)。然后,将抓包分析获得的API链接:

https://lens.zhihu.com/api/videos/

与每个视频ID均可组合成一个新的链接地址,例如:

https://lens.zhihu.com/api/videos/xxxxxx

请求该链接地址,即可获得对应视频的下载地址。

另外,需要注意的是,知乎回答里的视频文件使用的是m3u8、ts流格式,即需要通过解析m3u8文件来下载所有的视频传输流文件,然后再将其合并。最简单的方法是使用FFmpeg解析,不过本着学习的目的,我自己也写了个简单的解析类,部分代码截图:

网友提问:如何保存知乎回答里的视频,Python大神亲自操刀实现
网友提问:如何保存知乎回答里的视频,Python大神亲自操刀实现

That's all.

完整源代码请自行参考相关文件。

视频演示

在cmd窗口运行"Cmd.py"或"Demo.py"文件即可。

当然相关文件中也提供了打包好的EXE文件,无需配置环境,直接双击运行即可。

更多

相关文件中提供的源代码也是整个项目的源代码,打包好的EXE文件也是对整个项目功能的打包。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019年03月12日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档