Skip to content

Commit 951d448

Browse files
committed
更新文档
1 parent e0f69a3 commit 951d448

1 file changed

Lines changed: 110 additions & 8 deletions

File tree

README.md

Lines changed: 110 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,112 @@
1-
### 使用说明
1+
# IINAServer
22

3-
> iina打开远程`.strm`视频时可以加载字幕
3+
## 功能
4+
5+
- 点 Emby Web 里的播放按钮,自动交给 IINA
6+
- 尽量复用已有 IINA 窗口,不重复开新窗口
7+
- 支持播放进度回传 Emby
8+
9+
## 流程
10+
11+
点击emby网页版上的播放按钮 -> 暴力猴脚本拦截事件, 构造资源url发送给本地服务器 -> 服务器拉起iina, 播放视频 -> 每隔5秒获取当前播放进度, 每隔30秒上传一次进度
12+
13+
## 快速开始
14+
15+
### 1. 启动服务
16+
17+
```bash
18+
# 二进制运行
19+
./IINAServer_darwin_amd64
20+
21+
# 源码调试
22+
go run .
23+
```
24+
25+
默认端口:`8080`, 启动后可访问:
26+
27+
```text
28+
http://127.0.0.1:8080/healthz
29+
```
30+
31+
看到 `{"status":"ok"}` 说明服务正常。
32+
33+
#### 启动参数
34+
35+
- `-port`: 服务端口
36+
- `-iina-bin`: iina-cli 可执行文件路径
37+
- `-poll-interval`: ipc 读取间隔
38+
- `-progress-interval`: 多少秒上传一次进度
39+
40+
#### IINA 查找顺序
41+
42+
如果你没有传 `-iina-bin`,服务会按下面顺序找:
43+
44+
1. `~/.local/bin/iina-cli`
45+
2. `/Applications/IINA.app/Contents/MacOS/iina-cli`
46+
3. `iina-cli`
47+
4. `iina`
48+
49+
### 2. 安装 userscript
50+
51+
项目自带脚本:
52+
53+
```text
54+
scripts/emby-iina-only.user.js
55+
```
56+
57+
把脚本安装到浏览器 userscript 插件里。
58+
59+
### 3. 改脚本里的本地服务地址
60+
61+
脚本默认配置:
62+
63+
```js
64+
const config = {
65+
localServer: "http://127.0.0.1:8080",
66+
reviewOnly: false,
67+
dryRunUpload: false, // `false`:上传播放进度到 Emby `true`:只本地记录,不上传
68+
debugMediaURL: "",
69+
debugSubtitleURL: "",
70+
dedupeWindowMs: 2500,
71+
requestTimeoutMs: 4000,
72+
debug: false,
73+
};
74+
```
75+
76+
### 4. 在 Emby Web 里点播放
77+
78+
脚本会接管播放按钮,把请求转给本地 IINAServer,再由 IINA 播放。
79+
80+
## 构建
81+
82+
```bash
83+
bash scripts/build.sh darwin-arm64
84+
bash scripts/build.sh darwin-amd64
85+
bash scripts/build.sh all
86+
```
87+
88+
产物在 `build/` 目录。
89+
90+
## 更多api
91+
92+
- `GET /healthz`
93+
- 健康检查
94+
- 用来确认服务是否启动成功
95+
96+
- `GET /play?video=<视频URL>&subtitle=<字幕URL>`
97+
- direct play 接口
98+
- 不走 Emby Web,直接让本地 IINA 播放指定视频
99+
- `video` 必填,`subtitle` 可选
100+
101+
- `GET /v1/review/sessions/latest`
102+
- 查看最近一次播放接管记录
103+
- 适合排查“有没有接管成功”“有没有上传进度”
104+
105+
- `GET /v1/review/sessions/{sessionId}`
106+
- 查看指定会话详情
107+
- 可看到该次播放的参数、采样、进度上传、错误信息
108+
109+
- `POST /v1/session/stop`
110+
- 停止当前本地接管会话
111+
- 一般由 userscript 自动调用
4112

5-
1. 下载对应平台的可执行文件
6-
2. 运行可执行文件
7-
3. 调用 http://localhost:8080/play?video=xxx&subtitle=xxx 播放视频
8-
4. 需要修改端口使用 -port=xxx 参数
9-
5. 字幕保存在系统默认的临时目录下
10-
6. 需要搭配脚本使用 https://github.com/jqtmviyu/UserScripts/tree/main/emby调用iina播放器

0 commit comments

Comments
 (0)