简介
本项目是一款1比1仿B站实现的开源视频播放网站,全面支持用户注册登录、视频随机推荐、视频投稿、视频审核、内容搜索(视频 + 用户)、消息系统、个人空间(用户作品 + 收藏夹)等功能,可帮助用户快速搭建自己专属的视频社区平台。
系统采用标准的前后端分离模式设计,基于主流技术栈Vue + SpringBoot实现,界面交互高度还原B站,用户无需学习成本即可无缝切换。系统采用MIT协议开源,代码100%开源,支持用户私有化部署、二开和商用,是个人毕设、中小型企业搭建内部或对外商用视频社交平台的不错选择。
功能列表
-
用户模块:
-
用户中心:支持注册登录(JWT认证)、个人信息修改、头像上传及个人空间展示(作品/收藏)等功能
-
消息系统:系统基于Netty,支持用户间实时聊天、私信通知与系统消息提醒
-
互动功能:支持视频点赞、投币、收藏、分享及评论回复等功能
-
-
视频模块:
-
视频投稿:支持用户上传视频文件(对接OSS),填写标题、分区、标签等元数据
-
弹幕系统:支持高性能弹幕发送、实时渲染与存储,完美还原B站经典观看体验
-
视频播放:内置标准视频播放器,支持清晰度切换、进度记忆及全屏播放
-
-
内容管理:
-
全文检索:基于ElasticSearch构建,支持对视频标题、标签及用户昵称的精准与模糊搜索
-
首页推荐:支持视频随机推荐,展示热门或最新视频内容
-
后台审核:内置管理员端视频审核功能,支持通过、拒绝操作,保障内容合规性
-
-
其他功能:
-
多数据源管理:支持统一管理MySQL业务数据、Redis缓存数据与ES搜索索引
-
OSS集成:支持无缝对接阿里云对象存储OSS,解决海量视频资源的存储与分发瓶颈
-
权限控制:系统基于角色(Role)实现细粒度权限控制,区分普通用户、UP主与管理员权限,满足不同用户的使用场景
-
功能截图
首页:
创作中心:
发布视频:
视频审核:
视频详情:
搜索页面:
搜索页面:
个人主页:
个人中心:
消息中心:
系统架构
前端项目结构:
├── 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














![表情[chi]-寻找资源网](http://www.seekresource.com/wp-content/themes/zibll/img/smilies/chi.gif)



暂无评论内容