最近一两年短视频业务风生水起,各个视频网站都有各自特色的短视频内容。如果有这样一个程序,可以把各大视频网站的热门用户最新发布的视频都下载下来,不仅方便自己观看,还可以将没有版权的视频发布在个人社交网站上,增加自己的人气,岂不美哉?

parker就是这样一个项目(项目地址:https://github.com/LiuRoy/parker),它采用celery框架定时爬取用户视频列表,将最新发布的视频通过you-get异步下载,可以很方便地实现分布式部署。因为各个网站的页面布局和接口更新比较频繁,为了保证程序的高可用,特意增加了Statsd监控,方便及时发现出错。

代码架构

目前parker中只实现了B站和秒拍的下载,从框架图可以看出,针对每一类网站,需要实现两个异步接口:从用户视频主页解析发布视频的播放地址、根据播放地址下载视频。因此增加网站类型,不需要修改原来的代码,只需要添加新的解析和下载接口即可。针对视频下载完成之后的后续操作,我还没有实现,大家可以根据自己的需求自由的去实现。

在运行的时候,celery会将配置好的优质用户列表定时发送到对应网站的解析接口异步执行,筛选出最新发布的视频播放地址,交给对应的下载接口异步下载,下载完成之后再异步调用后续操作。因此需要启动一个celery beat进程发送定时任务,以及若干celery异步任务去执行解析和下载操作,对于比较大的视频,下载会相当耗时,建议根据任务列表的多少合理分配异步任务的个数。

程序运行

经验证,此程序可以在ubuntu和mac下正常运行, 由于本地windows下的celery无法正常启动,所以没有在windows环境做过验证。

依赖库安装

python版本为3.5,进入项目目录后,执行:

1pip install -r requirements.txt

创建数据库表

参数配置

config路径下的logging.yaml、params.yaml、sites.yaml分别对应日志配置、运行参数配置、热门用户配置。

日志配置

debug模式下日志会直接输出在标准输出流,release模式下会将日志内容输出到文件中,因此需要配置输出日志文件。

运行配置

mode debug调试模式,此模式下日志指向标准输出,并且没有监控数据;release模式下,日志输出到制定文件,并且有监控数据。

broker_url 对应于celery的BROKER_URL,可以配置为redis或者rabbitmq

mysql_url 数据库地址,需要提前建好两张表

download_path 视频下载路径

statsd_address 监控地址

video_number_per_page 每次从用户视频主页解析出多少条视频播放地址,因为大部分用户每次发布的视频个数很少,只需要设置成一个很小的值即可。在初次运行的时候,也不会下载大量久远的视频。

download_timeout 视频下载的超时时间

热门用户配置

parker会根据此配置生成一份celery beat scheduler列表。

name 规则是-,parker会根据此作为scheduler任务名称

url 用户的发布视频主页

task 对应的celery解析异步任务

minute 多少分钟检查一次用户视频列表

启动任务

进入项目目录,执行下面命令启动celery worker

1celery -A spider worker

执行下面命令启动celery beat定时任务

1celery -A spider beat

监控

windowsxp下载python下载视频_Python 实现视频下载相关推荐

  1. python爬取哔哩哔哩视频_Python实现视频爬取下载

    注:源内容来自公众号[python学习开发] 一般情况下我们使用爬虫更多的是对数据或者图片进行爬取,今天在这里和大家分享一下关于使用爬虫技术来进行视频下载的方法,不仅可以方便的下载一些体积小的视频,针 ...

  2. python自动剪视频_python剪切视频与合并视频的实现

    windows10/python3.6环境需安装imageio,ffmpeg(视频中有教下载)文字中不体现太麻烦,看起来也不方便! 剪切代码python代码: import imageio image ...

  3. python视频编辑教程_Python 带你高效创作短视频,视频剪辑什么鬼_Python 视频_Python 课程视频_Python 课程_课课家...

    近两年,抖音.快手将短视频推到风口浪尖上,要生产出高质量的视频,离不开视频剪辑这一环节;在全民剪片浪潮中,大众使用最多的剪辑软件如:Pr.FCPX.剪印.Vue 等.我们一起看看. 之前有两篇文章分别 ...

  4. python字母转换视频_python将视频转换为全字符视频

    简介 如何简单的使用python来实现将一部视频转换为字符画视频的效果. 其实,大家都知道视频就是一帧一帧的图片构成的. 那么如今我们想要实现,将视频转换为字符视频,那么是不是可以认为只要将一部视频全 ...

  5. python写安卓游戏_Python 3d最新安卓版下载,Python 3d游戏最新安卓版下载 v1.0 - 游戏盒子下载站...

    Python 3d最新安卓版是一款趣味十足的以贪吃蛇为玩法的3D风格的休闲类游戏.玩家在游戏中需要控制自己的这条小蛇灵活的躲避各种障碍,然后吞食资源进行成长!你能否将小小的蛇,养成霸屏的庞然大物呢?每 ...

  6. 下载python后怎么运行代码,怎样下载python的编译器

    python怎么运行 python运行的具体步骤:工具:戴尔电脑. 1.将下载的python解释器的路径添加到环境变量中,之后在命令行中输入python会出现如下的显示版本号的信息,之后就可在命令行写 ...

  7. 下载python忘了勾选怎么办,下载python桌面没有图标

    python下载安装教程 python下载安装教程:自定义安装目录,点击install进行安装,打开cmd窗口,输入python,显示python的版本,安装成功. Python语言更适合初学者,Py ...

  8. python多线程下载视频_python 实现多线程下载m3u8格式视频并使用fmmpeg合并

    电影之类的长视频好像都用m3u8格式了,这就导致了多线程下载视频的意义不是很大,都是短视频,线不线程就没什么意义了嘛. 我们知道,m3u8的链接会下载一个文档,相当长,半小时的视频,应该有接近千行ts ...

  9. python多线程下载视频_python 实现多线程下载视频的代码

    代码: def thread(url): r = requests.get(url, headers=None, stream=True, timeout=30) # print(r.status_c ...

  10. python下载迅雷资源助手_python:you-get下载B站、优酷网站的在线视频

    you-get 的使用方法是这样的,在命令行中输入 you-get https://www.bilibili.com/video/av8786599/ 可以看到 you-get的优点在于: 1.使用方 ...

最新文章

  1. curl测试返回时间
  2. css样式表实验报告,css基本样式(二)
  3. 『数据库』 E-R图(实体联系图)你都不会,你设计什么数据库?
  4. 日常使用Git,这些问题你遇到过吗?
  5. 框架源码专题:Spring的事件监听、发布机制 ApplicationListener
  6. Windows2003系统无法运行CS游戏的解决方案
  7. Winsock编程入门 -- 4.面向连接的通讯
  8. espcms简约版的表单,提示页,搜索列表页
  9. android无线投屏到电视盒子,如何把电脑视频投屏到智能电视/电视盒子上?
  10. 通过cmd进行文件格式的转换
  11. 进程间通讯的四种方式
  12. 全球约有 150 亿台设备在运行 Java,收费后还能用吗?
  13. thymeleaf内嵌变量
  14. 6580 8.1 mtp模式,查看手机容量大小修改
  15. 只会教学育人,清华解聘50岁副教授
  16. 每日新闻 | 董明珠与雷军开启新赌约:10亿不要了,再赌5年
  17. matlab 随机相位的正弦信号,利用MATLAB绘制随机相位正弦波.docx
  18. status(状态);
  19. PB中的82个实用技巧
  20. 用程序判断2018年2月14日是星期几。

热门文章

  1. 一木.溪桥---Python之简介、环境搭建、PyCharm配置
  2. [WinError 193] %1 不是有效的 Win32 应用程序问题解决
  3. 活动|域名转入专场活动
  4. 企鹅的游戏(penguin)
  5. katana lookfile属性的修改overwride
  6. SUBMAIL短信平台API接口-Message/send
  7. fatal: unable to access ‘https://github xxxxxxxxx的解决方法
  8. 各个操作系统中怎样设置电脑的颜色保护眼睛
  9. KrakenD网关V1.0.0文档初步翻译
  10. Springboot+微信小程序自习室管理系统毕业设计源码221535