自上次 2023.10.01 mygo 在B站下架后,为了保留大家在B站观看 mygo 的美好回忆,我爬取了评论和弹幕制作了这个可以本地启动的网页项目。
2024.04.08-2024.04.17 为了庆祝活动 mygo 又再次短暂上架,我对数据进行了更新,页面做了重构。
最新教程视频链接(https://www.bilibili.com/video/BV1Ww411C73f/?p=3)
上期教程视频链接(https://www.bilibili.com/video/BV1Ww411C73f/?p=2)
2024.12.07 19:00 mygo全集终于作为正式番剧回归b站( https://www.bilibili.com/bangumi/play/ep1183102 ),并且保留了原来的弹幕和评论信息,更新了字幕,感谢'我去 母鸡卡'官方!!!!,本项目也就暂时告一段落啦,再次感谢大家过去一年以来的关注和支持!!!!
百度云盘(提取码:ecg4):链接
谷歌云盘:链接
你有 mygo 的视频资源,不想下载评论区图片,则程序评论区图片使用 B站的图片地址,所以启动程序时电脑需要联网,否则图片都会加载失败。一些图片可能失效或被更改。
- 下载对应文件夹里的压缩包。
- 解压到任意位置。
- 打开解压后的
mygoFlaskProject
文件夹,找到mygoFlaskProject/video
文件夹,把视频资源放入其中(支持 MP4/WebM/Ogg/FLV/AVI/MKV/MOV/ 等类型的文件,具体可能还要看一下视频编码格式),注意在 Windows 默认排序下需要满足“1-12集、总集篇、13集、特别节目1-2”这个顺序,否则会导致集数错乱。如果错乱的话可以按 1-16 重命名视频文件,缺少的资源可以在网盘“视频资源”里下载。 - 双击
windows一键启动.bat
启动,然后在浏览器中访问127.0.0.1:5000
即可(若端口冲突,请编辑run_mode.json
尾行的port
,访问链接中的5000也改为更改后端口)。
你有 mygo 的视频资源,希望下载评论区图片。
- 下载对应文件夹里的压缩包。
- 解压到任意位置。
- 打开解压后的
mygoFlaskProject
文件夹,找到mygoFlaskProject/video
文件夹,把视频资源放入其中(支持 MP4/WebM/Ogg/FLV/AVI/MKV/MOV/ 等类型的文件,具体可能还要看一下视频编码格式),注意在 Windows 默认排序下需要满足”1-12集、总集篇、13集、特别节目1-2“这个顺序,否则会导致集数错乱。如果错乱的话可以按 1-16 重命名视频文件,缺少的资源可以在网盘“视频资源”里下载。 - 双击
windows一键启动.bat
启动,然后在浏览器中访问127.0.0.1:5000
即可(若端口冲突,请编辑run_mode.json
尾行的port
,访问链接中的5000也改为更改后端口)。
你没有 mygo 的视频资源,不想下载评论区图片。则程序的评论区图片使用 B站的图片地址,所以启动程序时电脑需要联网,否则图片都会加载失败。一些图片可能失效或被更改。
- 下载对应文件夹里的压缩包。
- 解压到任意位置。
- 双击
windows一键启动.bat
启动,然后在浏览器中访问127.0.0.1:5000
即可(若端口冲突,请编辑run_mode.json
尾行的port
,访问链接中的5000也改为更改后端口)。
你没有 mygo 的视频资源,希望下载”视频资源“和”评论区图片“。
- 下载对应文件夹里的压缩包。
- 解压到任意位置。
- 双击
windows一键启动.bat
启动,然后在浏览器中访问127.0.0.1:5000
即可(若端口冲突,请编辑run_mode.json
尾行的port
,访问链接中的5000也改为更改后端口)。
常见问题
- 缺少视频资源:在云盘中找到“视频资源”文件夹下载后放在
mygoFlaskProject/video
文件夹下。 - 视频有声音黑屏:说明自己准备的视频是 v265 格式,这个目前只有新的浏览器支持,下载谷歌浏览器解决。
- 视频不加载+评论区不加载:原因是火绒的拦截策略,临时关掉火绒或者B站私聊,改一下代码即可。
- 页面布局错乱:浏览器最大化后调整网页缩放即可。
- 感觉视频不够清楚:
mygoFlaskProject/video/
文件夹下放的是所有视频,替换为你的高清资源即可,这里推荐一个阿里云盘资源(提取码:ja76)。 - 运行后图片和视频加载慢:确保图片和视频被放在一个速度快的储存介质下,如固态硬盘,不要放在U盘中。如果还是卡那可能你需要换个新电脑了。
- 想在其他设备(如手机或平板)上观看:确保所有设备处于同一个局域网下,在其他设备上访问电脑命令行上第二行的局域网地址即可。推荐手机横屏观看。
- 你可以直接从上面的两个网盘下载本仓库的完整版本或通过
git clone [email protected]:wangwc18/mygoFlaskProject.git
命令克隆仓库。但是你还是需要从网盘下载完整版压缩包(使用B站图片时只需要下载视频就可以),解压后将文件夹拷贝覆盖到本仓库下(缺少视频资源与图片资源)。
- Python 环境启动
- Step 1: 安装依赖
pip3 install -r requirements.txt
- Step 2: 启动
python app.py
- Step 1: 安装依赖
- Conda 环境启动
- Step 1: 新建 Conda 环境
conda create -n mygo python=3.10
conda activate mygo
pip install -r requirements.txt
- Step 2: 启动
python app.py
(若需更改端口,请编辑run_mode.json
尾行的port
)
- Step 1: 新建 Conda 环境
- Docker 环境启动
- Step 1: 拉取镜像:
docker pull happyrespawnanchor/my-go-flask-project:24.4.17
- Step 2: 启动容器
docker run -it -p 5000:5000 --rm -v /你自己/拥有的/视频位置:/mygo/video my-go-flask-project:24.4.17
(换成你的mygo视频路径)
- Step 1: 拉取镜像:
- 最后访问
127.0.0.1:5000
即可,如果你更改了端口,此处的5000也记得改掉。
Python
+ Flask
+ Bootstrap
+ nPlayer
- 弹幕有三种来源,这些文件在
mygoFlaskProject/danmaku/
下(做了重命名)- 标准弹幕(1文件夹),使用“唧唧Down”获取 xml 和 ass 文件,只用 xml 文件。
- 最多弹幕(2文件夹),使用 B站的这篇专栏 链接,作者做了最大合并,里头还有各种其他类型的弹幕。
- 开播弹幕(3文件夹),后期弹幕和前期弹幕的观感不同(比如前期弹幕剧透更少),所以取了前 3000 条,这部分由 Gray Zhang 提供。
- 同时下载了视频文件在
mygoFlaskProject/video/
下。 - 剩余的数据为程序抓取,保存在
mygoFlaskProject/get_data/
目录下:get_basic_mess.py
获取视频的基础信息(类似标题、播放数量、弹幕数量等)生成mygoFlaskProject/basic.json
。get_comment.py
获取所有评论以及回复,生成三个文件夹comment_json_hot
、comment_json_ne
w、comment_json_more
,分别对应最热评论、最新评论、更多评论的原始 JSON。为了防止大语言模型的隐私泄露问题,原始评论数据我放网盘了。(PS: 由于 04.17 晚上 Cookie 过期导致爬取失败,现在的数据是 04.17 下午 2 点爬的,红豆泥斯米马赛。。。。。)get_pic.py
爬取评论区图片。orginal_json_to_type.py
原始 JSON 信息太多,把信息精简后放在mygoFlaskProject/
下:comment_hot_json
最热评论(JSON 中的图片链接为本地图片链接)。comment_new_json
最新评论(JSON 中的图片链接为本地图片链接)。comment_more_json
更多评论,评论回复中的“点击查看”加载出的评论(JSON 中的图片链接为本地图片链接)。comment_hot_json_online
最热评论(JSON 中的图片链接为B站链接)。comment_new_json_online
最新评论(JSON 中的图片链接为B站链接)。comment_more_json_online
更多评论,评论回复中的“点击查看”加载出的评论(JSON 中的图片链接为 B站链接)。
- 本分支视频组件替换为使用 nplayer(链接), 原本的项目是使用 dplayer(链接),但是有 Bug 迟迟不能修复。后续再研究一下添加新的功能。
- 弹幕的用户播放配置写入 Cookie,由于Bug弹幕的透明度无法正确保存(player.danmaku.opt.opacity无法获取实时的值,从player.danmaku.el.style.opacity获取值貌似与player.danmaku.opt.opacity不一样?)。
- 超级感谢 B站月落云尘大佬对 nPlayer 视频组件的指路以及代码示范。
- 感谢B站 Darklyyy 对页面部分细节优化,制作的一个对 2k 屏幕适配的分支:Better 2K。
- 感谢 GitHub 的 Gray Zhang 大佬提供的新弹幕文件和建议。
- 感谢 GitHub 的HappyRespawnanchor 以及Junjie Fang 重新完善了README