简介
PlayTube
是一个视频分享程序,它能快速的建立一个视频上传、导入、分享的网站,具有多语言、用户管理、广告管理、视频上传、从youtube
和vime
等网站导入视频等功能。
截图
功能
- 上传视频:上传本地视频。
- 导入视频:非常简单的从
YouTube
、Dailymotion
、和Vimeo
等站点批量导入视频,此功能需要对应网站的API
。 - 自动导入视频:设置一些关键词并创建导入任务,轻松从
YouTube
和Dailymotion
导入视频到你的网站。 - 高性能:
PlayTube
可以轻松的处理超过1B
的视频。 WoWonder
登录集成:无缝对接WoWonder
社交系统,可以使用社交系统的帐户授权登入。- 喜欢&反感:用户可以对某视频进行喜欢投票。
- 评论系统:注册用户可以对视频进行评论。
- 订阅、历史、接下来观看:功能也是比较人性化的。
- 用户频道:完整的用户展示页。
- 广告系统:可以创建视频、页面的广告,一切都在后台的广告设置里。
- 站点地图建立:建立站点地图并自动发送到
Google/Bing
。 SEO
友好:搜索引擎优化友好的链接,非常有利于谷歌收录。- 完整的后台:功能完善的后台控制面板。
- 漂亮的
UI
:非常容易修改而且还很漂亮的模板。
安装
环境要求:PHP >= 5.5
、MySQL
、GD Library
、mbstring
、cURL
、allow_url_fopen
。
这里使用宝塔面板做演示,如果你有基础的话,也可以使用其它面板或者lnmp
一键包。
1、安装宝塔
#Centos系统
yum install -y wget && wget -O install.sh http://download.bt.cn/install/install.sh && sh install.sh
#Ubuntu系统
wget -O install.sh http://download.bt.cn/install/install-ubuntu.sh && sudo bash install.sh
#Debian系统
wget -O install.sh http://download.bt.cn/install/install-ubuntu.sh && bash install.sh
安装完成后,进入面板安装PHP
、Mysql
、Nginx
、phpmyadmin
。
2、安装程序
添加域名,然后下载程序源码,并将程序上传到网站根目录解压,源码下载:
#v1.4.1完整源码
https://www.moerats.com/usr/down/Playtube/playtube-v1.4.1-full.zip
#增量包,升级时需要一个一个挨着解压覆盖
https://www.moerats.com/usr/down/Playtube/playtube-v1.4.2-update.zip
https://www.moerats.com/usr/down/Playtube/playtube-v1.4.3-update.zip
https://www.moerats.com/usr/down/Playtube/playtube-v1.4.5-update.zip
https://www.moerats.com/usr/down/Playtube/playtube-v1.4.5.1-update.zip
https://www.moerats.com/usr/down/Playtube/playtube-v1.5-update.zip
https://www.moerats.com/usr/down/Playtube/playtube-v1.5.1-update.zip
https://www.moerats.com/usr/down/Playtube/playtube-v1.6-update.zip
#语言包
https://www.moerats.com/usr/down/Playtube/lang1.4.1-v1.4.2-cn.zip
#升级方法,比如v1.4.1升级到v1.4.2
将v1.4.2增量包上传至根目录,解压并直接替换根目录文件,再访问http://xx.com/update.php进行更新即可。
#v1.4.5.1开心完整版源码
https://www.moerats.com/usr/down/Playtube/playtube-v1.4.5.1-nulled.zip
#v1.6开心完整版源码,安装的时候购买代码和其他版本不一样,V1.6购买代码为:顶点网破解
https://www.moerats.com/usr/down/Playtube/playtube-v1.6-nulled.zip
再添加Nginx
伪静态:
if (!-f $request_filename){
set $rule_0 1$rule_0;
}
if (!-d $request_filename){
set $rule_0 2$rule_0;
}
if ($rule_0 = "21"){
rewrite ^/$ /index.php?link1=home ;
}
rewrite ^/$ /index.php?link1=home ;
rewrite ^/reset-password/([^/]+)(/|)$ /index.php?link1=reset-password&code=$1 ;
rewrite ^/confirm/(.*)/(.*)$ /index.php?link1=confirm&code=$1&email=$2 ;
rewrite ^/api/v(([0-9])([.][0-9]+))(/|)$ /api.php?v=$1 ;
rewrite ^/admin-cp$ /admincp.php ;
rewrite ^/admin-cp/(.*)$ /admincp.php?page=$1 ;
rewrite ^/admin-cdn/(.*)$ /admin-panel/$1 last;
rewrite ^/videos/category/(.*)/rss(/|)$ /index.php?link1=videos&page=category&id=$1&feed=rss ;
rewrite ^/videos/category/(.*)$ /index.php?link1=videos&page=category&id=$1 ;
rewrite ^/videos/(.*)/rss(/|)$ /index.php?link1=videos&page=$1&feed=rss ;
rewrite ^/videos/(.*)$ /index.php?link1=videos&page=$1 ;
rewrite ^/articles(/|)$ /index.php?link1=articles ;
rewrite ^/articles/category/(.*)$ /index.php?link1=articles&category_id=$1 ;
rewrite ^/articles/read/(.*)$ /index.php?link1=read&id=$1 ;
if (!-f $request_filename){
set $rule_14 1$rule_14;
}
if (!-d $request_filename){
set $rule_14 2$rule_14;
}
if ($rule_14 = "21"){
rewrite ^/aj/([^/.]+)/?$ /ajax.php?type=$1&first=$2 last;
}
rewrite ^/aj/([^/.]+)/([^/.]+)/?$ /ajax.php?type=$1&first=$2 last;
rewrite ^/aj/([^/.]+)/([^/.]+)/([^/.]+)/?$ /ajax.php?type=$1&first=$2&second=$3 last;
rewrite ^/edit-video/(.*)?$ /index.php?link1=edit-video&id=$1 last;
rewrite ^/watch/([^/]+)(/|)?$ /index.php?link1=watch&id=$1 last;
rewrite ^/watch/([^/]+)/list/([^/]+)(/|)?$ /index.php?link1=watch&id=$1&list=$2 last;
rewrite ^/embed/(.*)?$ /index.php?link1=embed&id=$1 last;
rewrite ^/resend/(.*)/(.*)?$ /index.php?link1=resend&id=$1&u_id=$2 last;
rewrite ^/redirect/(.*)?$ /index.php?link1=redirect&id=$1 last;
rewrite ^/settings/(.*)/(.*)$ /index.php?link1=settings&page=$1&user=$2 ;
rewrite ^/settings/(.*)$ /index.php?link1=settings&page=$1 ;
rewrite ^/terms/([^/]+)(/|)$ /index.php?link1=terms&type=$1 ;
rewrite ^/go_pro(/|)$ /index.php?link1=go_pro ;
rewrite ^/ads(/|)$ /index.php?link1=ads ;
rewrite ^/ads/create(/|)$ /index.php?link1=create_ads ;
rewrite ^/ads/edit/(d+)(/|)$ /index.php?link1=edit_ads&id=$1 ;
rewrite ^/contact-us(/|)$ /index.php?link1=contact ;
rewrite ^/@([^/]+)(/|)$ /index.php?link1=timeline&id=$1 ;
rewrite ^/messages/(.*)$ /index.php?link1=messages&id=$1 ;
if (!-f $request_filename){
set $rule_33 1$rule_33;
}
if (!-d $request_filename){
set $rule_33 2$rule_33;
}
if ($rule_33 = "21"){
rewrite ^/([^/]+)(/|)$ /index.php?link1=$1 ;
}
最后打开域名进行安装配置,授权码:nulled-by-reishi
,直接使用v1.4.5.1
完整版的可能不需要授权。
3、中文设置
我们通过phpmyadmin
进入到数据库,找到PlayTube
所使用数据库,删除langs.sql
,再将语言包的langs.sql
文件导入到数据库即可。
然后刷新网站会看到有右下角语言有中文
的,如果选择中文
后,分类显示不出来,可能是分类语言乱码,这时候我们去根目录assets/langs
,将乱码的语言文件改成中文.php
即可。
4、安装ffmpeg
要使用程序完整的功能,我们还需要安装ffmpeg
。安装参考:使用静态ffmpeg二进制文件秒安装ffmpeg。
再打开宝塔,点击左侧软件管理-PHP
设置-禁用函数-删除shell_exec
。最后在后台设置FFmpeg
二进制文件路径为/usr/bin/ffmpeg
。
5、更多设置
#视频分类设置
网站目录./assets/langs/中文.php修改。
#编辑样式表
./themes/default/css,主样式文件是style.css
#添加自己的代码
想在head、body、footer标签中添加自己的代码,请在./themes/default/layout/container.html修改
差不多到这里就算安装完成了,然后更多功能自行研究吧。
最后由于最新版的Plytube
没汉化,用起来可能不是很方便,如果想做视频站的,还是建议使用中文程序,可以试试开源版express-ffmpeg
云转码程序→传送门。
为何上传视频时"发布"按钮一直无法使用?
上传完成,还要等转码才能发布,你的ffmpeg装了没?还有ffmpeg后台设置和禁用函数都要弄好。
感谢回复,是nginx里面的client_max_body_size参数设小了。视频也转换了,但是点击“发布”后左下角跳出“undefined”。搞不懂又是啥问题。
这个就不是很清楚了。
这个转码好像有问题,不懂是不是设置出问题,上传1080p的视频,但是转码生成不了1080p,最高转码到720p。
这个不是很清楚,我转的也都是720p。
原来是用管理员账户登录就可以到后台,真是很好的设置。
发现有一个问题,网站设置为中文,上传视频的分类看不到下拉菜单,设置成英文就可以看到。这个怎么解决呢?
这个貌似BUG,要是有强迫症,那就用英文的。
解决了,你的教程写得很清楚:根目录assets/langs,将乱码的语言文件改成中文.php即可。
解决好了就行,我都没咋用过,就测试转码正常,能正常用就完事了。
请问安装好了网站,后台地址是多少啊?
点击转码就报错
at emitTwo (events.js:125:13) at ChildProcess.emit (events.js:213:7) at Process.ChildProcess._handle.onexit (internal/child_process.js:197:12)at ChildProcess.<anonymous> (/root/express-ffmpeg/node_modules/fluent-ffmpeg/lib/ffprobe.js:233:22)
events.js:182
throw er; // Unhandled 'error' event ^TypeError: Cannot read property 'format' of undefined
at /root/express-ffmpeg/helper/listsffmpeg.js:48:35 at /root/express-ffmpeg/node_modules/mongoose/lib/model.js:4518:16 at (anonymous function).call (/root/express-ffmpeg/node_modules/mongoose/lib/query.js:3800:7) at process.nextTick (/root/express-ffmpeg/node_modules/mongoose/lib/helpers/query/completeMany.js:35:39) at _combinedTickCallback (internal/process/next_tick.js:95:7) at process._tickCallback (internal/process/next_tick.js:161:9)评论错地方了...
1.4.3 在哪?
仔细观察文章。
搭建不起来
那就是姿势有问题。
大佬你好,我将上传大小限制改成了10G,然后上传3G的视频在点击”PUSLISH”后在左下角提示undefined,但是我上传1.9G的文件是正常的。大佬有遇到过这个问题吗?能否给点思路?
谢谢
我也是这个问题 我PHP设置全部修改为10g 超时10000秒上传100多m的都是提示undefined,ffmpeg都是配置好的,就上传成功过一次后面怎么设置都undefined,官方也没有给出解答,想买正版也放弃了
没遇到过,我上传最多也才200M,你看下后台设置。还有PHP设置。
这个ffmpeg不能处理mkv格式视频?
好像可以,我测试过好几种格式的视频。
上传的视频找不到源或者未支持格式报错
检查下你的ffmpeg安装了没,需要用本文给个方法安装,还有后台设置ffmpeg路径。
设置ok的
我更换两人centos6系统就好了
上传的片子显示错误,播放不了,不知道啥原因
我之前测试过,都能转,也能看的。
这个播放问题怎么解决。。。。
什么问题?
上传的片子方不了哇
显示一直转码还是啥?