1比1复刻B站!一款MIT协议开源、美观的免费视频播放系统,可开箱即用

1比1复刻B站!一款MIT协议开源、美观的免费视频播放系统,可开箱即用

简介

本项目是一款1比1仿B站实现的开源视频播放网站,全面支持用户注册登录、视频随机推荐、视频投稿、视频审核、内容搜索(视频 + 用户)、消息系统、个人空间(用户作品 + 收藏夹)等功能,可帮助用户快速搭建自己专属的视频社区平台。

系统采用标准的前后端分离模式设计,基于主流技术栈Vue + SpringBoot实现,界面交互高度还原B站,用户无需学习成本即可无缝切换。系统采用MIT协议开源,代码100%开源,支持用户私有化部署、二开和商用,是个人毕设、中小型企业搭建内部或对外商用视频社交平台的不错选择。

图片[1]-1比1复刻B站!一款MIT协议开源、美观的免费视频播放系统,可开箱即用-寻找资源网

功能列表

  • 用户模块:

    • 用户中心:支持注册登录(JWT认证)、个人信息修改、头像上传及个人空间展示(作品/收藏)等功能

    • 消息系统:系统基于Netty,支持用户间实时聊天、私信通知与系统消息提醒

    • 互动功能:支持视频点赞、投币、收藏、分享及评论回复等功能

  • 视频模块:

    • 视频投稿:支持用户上传视频文件(对接OSS),填写标题、分区、标签等元数据

    • 弹幕系统:支持高性能弹幕发送、实时渲染与存储,完美还原B站经典观看体验

    • 视频播放:内置标准视频播放器,支持清晰度切换、进度记忆及全屏播放

  • 内容管理:

    • 全文检索:基于ElasticSearch构建,支持对视频标题、标签及用户昵称的精准与模糊搜索

    • 首页推荐:支持视频随机推荐,展示热门或最新视频内容

    • 后台审核:内置管理员端视频审核功能,支持通过、拒绝操作,保障内容合规性

  • 其他功能:

    • 多数据源管理:支持统一管理MySQL业务数据、Redis缓存数据与ES搜索索引

    • OSS集成:支持无缝对接阿里云对象存储OSS,解决海量视频资源的存储与分发瓶颈

    • 权限控制:系统基于角色(Role)实现细粒度权限控制,区分普通用户、UP主与管理员权限,满足不同用户的使用场景

功能截图

首页:

图片[1]-1比1复刻B站!一款MIT协议开源、美观的免费视频播放系统,可开箱即用-寻找资源网

创作中心:

图片[3]-1比1复刻B站!一款MIT协议开源、美观的免费视频播放系统,可开箱即用-寻找资源网

发布视频:

图片[4]-1比1复刻B站!一款MIT协议开源、美观的免费视频播放系统,可开箱即用-寻找资源网

图片[5]-1比1复刻B站!一款MIT协议开源、美观的免费视频播放系统,可开箱即用-寻找资源网

 

视频审核:

图片[6]-1比1复刻B站!一款MIT协议开源、美观的免费视频播放系统,可开箱即用-寻找资源网

图片[7]-1比1复刻B站!一款MIT协议开源、美观的免费视频播放系统,可开箱即用-寻找资源网

视频详情:

图片[8]-1比1复刻B站!一款MIT协议开源、美观的免费视频播放系统,可开箱即用-寻找资源网

图片[9]-1比1复刻B站!一款MIT协议开源、美观的免费视频播放系统,可开箱即用-寻找资源网

搜索页面:

图片[10]-1比1复刻B站!一款MIT协议开源、美观的免费视频播放系统,可开箱即用-寻找资源网

图片[11]-1比1复刻B站!一款MIT协议开源、美观的免费视频播放系统,可开箱即用-寻找资源网

图片[12]-1比1复刻B站!一款MIT协议开源、美观的免费视频播放系统,可开箱即用-寻找资源网

 

搜索页面:

图片[13]-1比1复刻B站!一款MIT协议开源、美观的免费视频播放系统,可开箱即用-寻找资源网

个人主页:

图片[14]-1比1复刻B站!一款MIT协议开源、美观的免费视频播放系统,可开箱即用-寻找资源网

图片[15]-1比1复刻B站!一款MIT协议开源、美观的免费视频播放系统,可开箱即用-寻找资源网

个人中心:

图片[16]-1比1复刻B站!一款MIT协议开源、美观的免费视频播放系统,可开箱即用-寻找资源网

图片[17]-1比1复刻B站!一款MIT协议开源、美观的免费视频播放系统,可开箱即用-寻找资源网

消息中心:

图片[18]-1比1复刻B站!一款MIT协议开源、美观的免费视频播放系统,可开箱即用-寻找资源网

系统架构

前端项目结构:

├── public/                     # 静态资源目录
│   └── ...                     # 图片、图标等静态文件
├── src/                        # 源代码目录
│   ├── assets/                 # 项目资源文件(图片、样式等)
│   ├── components/             # 公共组件(如弹幕组件、视频播放器组件)
│   ├── router/                 # 路由配置目录
│   ├── store/                  # 状态管理 (Pinia 或 Vuex)
│   ├── utils/                  # 工具类 (如 Axios 封装、WebSocket 工具)
│   ├── views/                  # 页面视图目录
│   │   ├── Home.vue            # 首页(含随机推荐视频)
│   │   ├── VideoDetail.vue     # 视频详情页(含播放、弹幕、评论)
│   │   ├── Search.vue          # 搜索页面(支持视频/用户搜索)
│   │   ├── UserCenter.vue      # 个人中心(信息修改、空间展示)
│   │   ├── Chat.vue            # 消息/聊天中心(Netty 实现)
│   │   └── ...                 # 其他页面
│   ├── App.vue                 # 根组件
│   └── main.js                 # 入口文件
├── .env.development            # 开发环境配置文件(配置代理端口)
├── babel.config.js             # Babel 配置文件
├── jsconfig.json               # JS 配置文件
├── package.json                # 项目依赖及脚本配置 (定义了 serve/build 命令)
├── vue.config.js               # Vue CLI 配置文件 (配置了代理等)
├── README.md                   # 项目说明文档
├── README.assets/              # Readme 文档相关图片
└── elasticsearch.md            # Elasticsearch 学习笔记 (非代码结构,但存在于仓库)

后端项目结构:

├── src/                        # 源代码目录
│   ├── main/                   # 主程序代码
│   │   ├── java/               # Java 源码
│   │   │   └── com.teriteri.backend/ 
│   │   │       ├── BackendApplication.java     # Spring Boot 主启动类
│   │   │       ├── common/     # 公共模块(常量、工具类、异常处理等)
│   │   │       ├── config/     # 配置类(MyBatis、Redis、Security、WebSocket等配置)
│   │   │       ├── controller/ # 控制器层(处理 HTTP 请求,如 UserController, VideoController)
│   │   │       ├── service/    # 业务逻辑层接口
│   │   │       │   └── impl/   # 业务逻辑层实现
│   │   │       ├── mapper/     # 数据访问层(MyBatis Mapper 接口)
│   │   │       ├── entity/     # 实体类(对应数据库表结构)
│   │   │       ├── utils/      # 工具类(JWT生成、阿里云OSS工具等)
│   │   │       └── websocket/  # WebSocket/Netty 相关配置(用于弹幕、聊天)
│   │   └── resources/          # 资源文件
│   │       ├── application.yml # 核心配置文件(数据库、Redis、ES、OSS等配置)
│   │       ├── application-dev.yml # 开发环境配置
│   │       ├── application-prod.yml # 生产环境配置
│   │       ├── static/         # 静态资源目录
│   │       └── templates/      # 模板文件目录(若使用 Thymeleaf 等)
│   └── test/                   # 测试代码
│       └── java/               # 测试类(如 Elasticsearch 索引创建测试)
├── database/                   # 数据库脚本目录
│   └── teriteri.sql            # 数据库建表及初始化数据脚本
├── .gitignore                  # Git 忽略文件配置
├── HELP.md                     # 项目帮助文档(通常由 Spring Initializr 生成)
├── LICENSE                     # 开源许可证文件
├── README.md                   # 项目说明文档(包含部署指南)
└── pom.xml                     # Maven 项目依赖管理文件(包含 SpringBoot, MyBatis-Plus 等依赖)

 

技术栈:

前端(web端):Vue3 + Element-Plus + Axios等

后端(服务端):SpringBoot + MyBatis-Plus + JWT + Netty等

数据库:MySQL + Redis + ElasticSearch

开发环境:NodeJs + JDK1.8

快速启动

前端服务:

1、下载项目源码:获取方式在文后

2、下载依赖:npm install

3、启动项目:npm run serve

后端服务:

1、下载项目源码:获取方式在文后

2、配置项目参数:application.yml

3、启动服务:BackendApplication
© 版权声明
THE END
喜欢就支持一下吧
点赞15 分享
相关推荐
评论 抢沙发

请登录后发表评论

    暂无评论内容