AI时代真的给人带来了无限可能,之前不敢想的事情现在都可以做了。个人对 LunaTV 和 LibreTV 都不甚满意,LunaTV 功能太复杂了,而 LibreTV又太简单,页面太赛博朋克了,不是很喜欢。于是借助 AI,我自己实现了我的个人影视站。

为什么要自己再做一个

其实很早之前我就自己搭建过影视站点,只不过用的都是传统的基于PhP的CMS模板,例如海洋CMS。

但是用户体验很不好,管理员需要在后台把资源采集到数据库里,这个过程非常的慢;另一方面, 像海洋CMS这种网站的前端模板都很不好看,要么就要付费定制,于是不如从头自己做。

LibreTVLunaTV 事实上和传统的 CMS 站点不太一样,其本地不需要保存采集源,而是直接调用采集源提供的接口来搜索和获取数据,然后动态的展示出来,这也得益于前端技术的快速发展。

LibreTV太简单

我不喜欢LibreTV的地方在于它的赛博朋克风格实在难以适应,个人更喜欢小清新和暖色调的网站,另一方面,LibreTV没有我想要的弹幕功能,而且早已经不再维护了。

LunaTV太复杂

LunaTV的功能太多了,就像一个百宝箱一样想要囊括万物,但是我只需要一个看剧的平台,这么多功能其实没必要。

我实现了哪些功能

我实现了我认为一个影视站应该具备的最最基础的功能,例如:

  • 豆瓣推荐 - 首页展示热门和高分影视内容
  • 红果短剧推荐 - 首页展示热门和高分短剧内容
  • 多源视频搜索 - 支持自定义多个视频源 API,聚合搜索电影和电视剧
  • 预测速 - 对搜索到的视频预测速和延迟,帮助用户选择最佳视频
  • 高级播放器 - 基于 Artplayer,支持 HLS/M3U8 流媒体播放
  • 快捷键支持 - 丰富的键盘快捷键,提升观看体验
  • 弹幕系统 - 手动设置接口,实时抓取最新官网弹幕
  • 去广告功能(实验功能) - 并不总是生效,因为采集站的广告片段特征越来越少
  • 片头片尾跳过 - 自动跳过片头片尾,可自定义跳过时间点
  • 播放历史 - 自动保存观看进度,随时继续观看
  • 收藏管理 - 收藏喜爱的视频,方便快速访问
  • 灵活配置 - 可视化管理视频源和弹幕源,支持导入导出
  • 直链播放 - 直接播放OpenList的链接,畅享高清+弹幕体验

网站截图:

如何部署

无服务器部署

VercelEdgeOnePage 都可以很好的兼容Next.js的项目,所以Fork本仓库,然后一键部署即可,无需额外复杂的环境变量

Docker本地部署

也很简单,一行命令即可

1
docker run -d --name nexttv -p 3000:3000 ghcr.io/seqcrafter/nexttv:latest

然后就可以在http://localhost:3000观看了。

弹幕功能如何开启

LogVar:

上面这个仓库在原作者的基础上添加了直接根据douban_id获取弹幕的功能,因为很多的视频源自带豆瓣ID,这个就避免了错误匹配的可能性。
另外,如果视频源不带豆瓣ID或者是一些非国内平台的剧,那么返回弹幕也就没了意义了。

1
https://{your project name}.netlify.app

那么,在我们网站的设置页面,你的接口应该填写

1
https://{your project name}.netlify.app/{token}/

然后就OK了,系统如果检测到你的视频有豆瓣的ID,就会自动抓取弹幕了!

多说一下,LogVar项目推荐的环境变量:

  • CONVERT_COLOR: 可以随机为弹幕生成颜色
  • DANMU_LIMIT: 随机取样限制弹幕数量,弹幕数太多会爆炸
  • ENABLE_EPISODE_FILTER: 避免抓取到错误链接

直链播放

必须提一下直链播放的功能!!
你会发现很多采集源的视频质量非常差,模糊不清或者帧率码率很低。所以我添加了这个功能,目的是为了匹配OpenList的资源。
OpenList可以解析夸克或者移动这些网盘资源获取直链,那么直接复制来自OpenList的播放链接到里面播放,就可以畅享高清+弹幕的体验了。

欢迎各位尝试!

演示站点

你可以访问

来体验我的影视站。

注意事项及免责声明

  • 本项目为空壳播放器,自带唯一播放源不稳定,仅供学习使用,请自行更换播放源
  • 本项目保持轻量(其实复杂的我也不会),不添加用户登录以及认证功能,不添加成人源隔离
  • 本项目完全由 Claude Code 生成,仅作为学习参考,请勿用于商业用途