一个基于多用户的抓取视频下载系统 PhaGrabVideo

2 篇文章 0 订阅
1 篇文章 0 订阅

一个基于多用户的抓取视频下载系统 PhaGrabVideo

  • Video
  • You-get
  • MultiUser
  • System

设计之初

最近工作中有个需求,大概是抓取网站中的视频下载并自助上传到自己的视频管理后台,其实就是爬虫,简单的做了一个后台,用户在后台添加 url ,在一台机器上部署定时任务,定时扫描表里添加的 url 并下载,下载成功保存到对应的目录下。另有一个定时任务,异步进行上传,Curl 上传到自己的上传服务器。下载的脚本采用了一个开源的视频下载工具 you-get。支持大概几十家国内外的视频网站的抓取。
在开发的过程中遇到几个问题:

  • 定时任务执行周期内未执行完成重复执行问题
  • 下载只能部署一台机器,不能多台部署

对于第一个问题,我已经在之前写的一篇文章《crontab 解决周期内未执行完重复执行问题》中给出了几种常用的解决办法
对于第二个问题,不能多个下载端同时部署,即一个后台只能对于一个下载端,虽然对于工作来说,这样已经可以满足需求,不需要多端部署,否则维护反而麻烦,但是我依然想要把它尽可能做成一个通用的可多端部署的视频抓取系统。基于此,在这基础上重新设计了基于多用户管理的视频下载系统–phaGrabVideo

架构设计

下面是基本的架构设计图

这里写图片描述

该系统分为客户端(client)和服务端(server),客户端和服务器完全分离
客户端采用 python 脚本编写,方便部署,通过 api接口来获取 url 信息以及日志上报
服务端(server)包括4部分: (User)用户、(Admin)后台管理、(server Api)Api接口、DB(数据库)

一个用户对应一个客户端,用户在首先在 Admin Manager (后台)注册账号之后会给用户分配一个 Token,用户将下载器的脚本部署到服务器,会要求填写你的用户名以及token,客户端验证成功后,将下载器部署成功。下载器根据用户名和 token 会定时轮询 url 这张表,查找该用户添加的 url ,并下载到本地的文件夹下。

这样设计的好处是各个用户之间独立部署,可实现多个下载端同时下载而不会产生冲突。

应用程序设计

  • 服务端:

    整体采用 php + Apache + Mysql 的开发环境。后台界面采用 Bootstrap 设计,简洁美观。
    功能包括:
    个人中心、账号管理、角色管理、视频来源、Url管理、视频管理、日志管理

    这里写图片描述

    URL管理:

    这里写图片描述

  • 客户端:

    采用 python 编写,通过 api 接口和服务端交互。定时查找并下载

其他

关于 you-get 的安装,请参考之前写的文章《you-get 安装》

项目地址

https://github.com/phachon/PhaGrabVideo
欢迎提交代码和意见

Thanks…


Create By phachon@163.com

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值