Hifilm电影网站系统: Go语言影视系统

采用Go语言开发的电影网站系统,页面采用响应式设计,自动适配PC端和手机端,包含电影资源自动采集、P2P播放、演员资料、影评、短评等功能
Hifilm电影网站系统: Go语言影视系统

产品套餐

产品的套餐和价格

免费版标准版
价格免费¥2,800
资源站采集
自动定时采集
资源站分类绑定
影片管理
短评管理
影评文章
自定义播放器
自动联播
自动续播
P2P加速
跳过片头/片尾
跳过广告
电视频道
播单功能
自动过滤广告 
付费点播
试看
VIP影片功能
在线付款功能
说明
免费下载 免费下载 购买授权

功能特色

产品功能简介

Hifilm 是一个基于Go语言通用后台管理系统Nging开发的电影网站系统(采用Go+MySQL8技术栈)。包含完整的会员系统以及实现了充值、购买流程,支持对影片发布短评和发布影评文章,支持发布剧情介绍和剧照等影片资料,特别适合用来搭建剧情网站、在线电影播放网站等。

内置基于WebRTC的P2P加速播放器,支持根据用户IP所在地理位置自动优先选择距离最近的用户分享流量。站外引用地址如:https://hifilm.eget.io/webplay/<你的m3u8地址>

后台采集功能是基于websocket技术来显示实时进度,所以在反向代理本程序时,需要开启webscoket功能

安装方式


  • 启动程序:
    下载相应平台的安装包,解压缩到当前目录,进入目录执行名为“hiFilm”的可执行程序(在Linux系统,执行之前请赋予hiFilm可执行权限)。 例如在Linux64位系统,分别执行以下命令:

    cd ./hiFilm_linux_amd64
    chmod +x ./hiFilm
    ./hiFilm
  • 安装程序:
    打开浏览器,访问网址 http://localhost:9999/admin/setup , 在页面中配置数据库和管理员账号信息进行安装。

    也可以使用命令行安装:

    通过命令来配置 (适用于尚未启动 hiFilm 的情形):
    * 安装到 MySQL 数据库的方式
    ./hiFilm init --user=<数据库用户名> --password=<数据库密码> --host=<MySQL服务器主机地址> --database=<MySQL数据库名> --adminUser=<管理员用户名> --adminPass=<管理员密码,不少于8位> --adminEmail=<管理员E-mail>
    
    例如:
    ./hiFilm init --user=root --password="root" --host="127.0.0.1:3306" --database=nging --adminUser=admin --adminPass="admin123" --adminEmail="admin@coscms.com"
    
    * 安装到 SQLite 数据库的方式
    ./hiFilm init --type=sqlite --database=<数据库文件路径> --adminUser=<管理员用户名> --adminPass=<管理员密码,不少于8位> --adminEmail=<管理员E-mail>
    
    例如:
    ./hiFilm init --type=sqlite --database="config/nging.db" --adminUser=admin --adminPass="admin123" --adminEmail="admin@coscms.com"
    
    执行成功后,启动 hiFilm。

如欲开机自动启动,可以安装为服务。

服务管理命令


命令 说明 其它用例
./hiFilm service install 安装服务 默认使用 9999 端口,在安装为服务时,可以指定自定义端口
./hiFilm service install -p 9998
./hiFilm service start 启动服务
./hiFilm service stop 停止服务
./hiFilm service restart 重启服务
./hiFilm service uninstall 卸载服务

源码开发步骤

  1. 开发过程中的启动步骤

    执行 sudo ./run.sh (如果是首次执行,则执行 sudo ./run_first_time.sh)
    如果尚未执行过安装操作,程序启动后可以访问 http://localhost:9999/admin/setup 来安装数据库的数据 

  2. 修改数据表结构的步骤

    先直接修改数据库中表结构,然后通过 cd tool 命令进入本项目的 tool 文件夹,执行命令 ./gen_dbschema.sh 来重新生成数据表结构体

    如果密码不是root,记得先修改 ./gen_dbschema.sh 脚本中的root为你的数据库密码

    然后修改 ./application/version/dbschema.go 文件内的 dbschema 常量值,一般在原值的基础上 +0.1,只要数据表结构有变动,在发布新版本之前都需要修改这里的值,以便于程序根据此版本号值自动更新旧版本程序的数据表结构

  3. 软件编译发布步骤

    • 如果引入了新的依赖,需要先执行 go mod vendor 命令,将所有依赖同步到当前项目的 vendor 文件夹中,因为 go-bindata 程序在嵌入静态文件时是从 vendor 文件夹内复制静态文件;
      (对于本程序中非公开的依赖,建议保存到自己的仓库中,然后在go.mod文件中用replace指令指向自己的仓库路径)
    • 然后再通过 cd tool/nging-builder 命令进入文件夹,先执行 
      go install github.com/admpub/nging-builder@latest
      命令来安装编译工具(如安装过可忽略),然后执行 ./run.sh 进行编译和创建压缩包,编译好的压缩包位于 <项目根目录>/dist/packed/v<版本号> 文件夹内

  4. 在模板文件中使用广告标签
    {{- $ad := Advert "<广告位标识>" -}}
    {{- if $ad.Valid -}}
    {{- $ad.Rand.HTML -}}
    {{- else -}}
    无广告
    {{- end -}}
    随机取一条广告:{{$ad.Rand.HTML}}
    取第一条广告:{{$ad.First.HTML}}
    取最后一条广告:{{$ad.Last.HTML}}
    循环遍历广告:{{range $adk,$adv := $ad}} {{$adv.HTML}} {{end}}

    上面是查询一个广告位中的广告,也支持一次查询多个广告位的广告,例如查询“test”和“test2”这个两个广告位:
    {{$ads := $.Advert `test` `test2`}}
    {{($ads.Place `test`).Rand.HTML}} 
    {{($ads.Place `test`).First.HTML}} 
    {{($ads.Place `test`).Last.HTML}} 
    {{range $adk,$adv := $ads.Place `test2`}} {{$adv.HTML}} {{end}}
资源站采集

支持添加和配置资源站,实现一键采集资源站资源

自动定时采集

支持定时自动采集影视资源,支持通过关键词过滤影片

资源站分类绑定

支持与影视资源站的分类进行绑定

影片管理

支持管理影片数据(影片、演员、分类、类别、年份、标签)

短评管理

支持对影片发布点评和打分

影评文章

支持添加和管理影评文章,支持会员发表影评文章

自定义播放器

支持设置自定义播放器代码

自动联播

支持自动播放下一集,如果没有下一集则自动播放下一部影片

自动续播

支持自动跳转到上次播放的位置继续播放

P2P加速

支持P2P加速,观众越多越流畅,节省媒体服务器网络带宽

跳过片头/片尾

通过分别配置片头、片尾的结束和起始时间来自动跳过片头和片尾

跳过广告

可以通过配置广告在影片中的起始和终止时间段来进行跳过广告

电视频道

电视频道管理功能用于电视节目在线播放

播单功能

支持将喜欢的影片加入播单

自动过滤广告

支持自动过滤影片广告,且可在后台设置此功能对哪些用户群体可用

付费点播

支持付费或使用观影券点播

试看

支持配置试看

VIP影片功能

支持设置影片或剧集仅供VIP会员观看

在线付款功能

支持在线付款