Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/std4453/jfdmk
jfdmk is danmaku for jellyfin
https://github.com/std4453/jfdmk
Last synced: about 6 hours ago
JSON representation
jfdmk is danmaku for jellyfin
- Host: GitHub
- URL: https://github.com/std4453/jfdmk
- Owner: std4453
- Created: 2021-11-06T15:37:39.000Z (about 3 years ago)
- Default Branch: master
- Last Pushed: 2021-12-08T02:43:27.000Z (almost 3 years ago)
- Last Synced: 2024-04-24T10:38:45.430Z (7 months ago)
- Language: JavaScript
- Size: 395 KB
- Stars: 18
- Watchers: 1
- Forks: 0
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# jfdmk
_jfdmk_ 在 [_Jellyfin_](https://jellyfin.org/) 中添加了弹幕功能。
它使用 [CommentCoreLibrary](https://github.com/jabbany/CommentCoreLibrary) 作为弹幕渲染引擎,用 [Bilibili 弹幕](https://github.com/SocialSisterYi/bilibili-API-collect/blob/master/danmaku/danmaku_xml.md) 作为数据源。
## 使用
### 构建数据库
为了使用它,你需要创建 `data/db.json` ,内容例如:
```json
{
"seasons": [
{
"series": "Banished from the Hero's Party, I Decided to Live a Quiet Life in the Countryside",
"season": 1,
"bilibili_ss": "39461"
}
]
}
```这里的 `series` 需要与 Jellyfin 中的剧集名称 **完全一致** ,如果你按照 [我的博客](https://blog.std4453.com:444/nas-from-zero-media-part/) 配置媒体栈,它应当与 [TheTVDB](https://thetvdb.com/) 中的名称相同。
`season` 为 1 开始的季度编号,同样与 TheTVDB 中的数据相同。
这两个字段用于匹配 bilibili 的季度,可以根据 Jellyfin 中的实际情况调整。
`bilibili_ss` 是 Bilibili 上对应视频的 `ss` ,你可以打开对应的番剧季度介绍页然后在 console 中输入:
```js
console.log(__INITIAL_STATE__.mediaInfo.season_id);
```默认情况下,我们假定 Jellyfin 上的剧集顺序与 bilibili 上的一一对应,如果不对应的话可以使用 `ranges` 字段进行匹配,例如:
```json
{
"seasons": [
{
"series": "Banished from the Hero's Party, I Decided to Live a Quiet Life in the Countryside",
"season": 1,
"ranges": [
{
"from": 2,
"to": 6,
"bilibili_ss": "39461",
"bilibili_from": 3
}
]
}
]
}
```这里的 `from` 、 `to` 和 `bilibili_from` 参数均为 1 开始的集数,如上的例子即表示:
> Jellyfin 中的第 2 ~ 6 集(包括头尾)对应 bilibili 上 ss=39461 的第 3 ~ 7 集
注意:
- `bilibili_ss` 字段和 `ranges` 字段只能存在一个。
- 如果 `ranges` 中的对象不包含 `from` 字段,则视为从第一集开始。
- 如果不包含 `to` 字段,则视为 `from` 后的所有集数。
- 如果不包含 `bilibili_ss` 字段,则视为从 bilibili 的第 1 集开始。
- `ranges` 中的所有条目会从前到后匹配,直到找到第一个符合要求的。
- 相同的 `series` 和 `season` 只能存在一条,多余的会被忽略。_TODO: 这一数据库内容应当可以公开,之后会考虑提供公共的数据库。_
### 启动服务
你可以使用 docker 镜像 `std4453/jfdmk:latest` 运行,这样的话可以跳过下面的步骤。
首先你需要安装依赖:
```bash
$ yarn install --production=true
```然后需要编译前端:
```bash
$ yarn build
```现在可以启动服务器了:
```bash
$ yarn start
```默认端口为 10086,你也可以通过 `PORT` 环境变量更改端口。
请注意,使用 docker 运行时, `data/db.json` 需要从外部挂载。
### 修改 Jellyfin
最后,你需要修改 Jellyfin 的 HTML 文件,在 `index.html` 的 `