mirakurun 4.0.0-beta.9 → 4.1.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.github/instructions/commit-messages.instructions.md +44 -0
- package/AGENTS.md +85 -0
- package/CHANGELOG.md +181 -1
- package/README.ja.md +125 -0
- package/README.md +37 -55
- package/api.d.ts +62 -20
- package/api.yml +97 -25
- package/doc/Configuration.ja.md +149 -0
- package/doc/Configuration.md +117 -98
- package/doc/Platforms.ja.md +233 -0
- package/doc/Platforms.md +162 -127
- package/docker/container-init.sh +5 -3
- package/docker/docker-compose.yml +42 -22
- package/lib/Mirakurun/Channel.d.ts +1 -1
- package/lib/Mirakurun/Channel.js +98 -63
- package/lib/Mirakurun/Channel.js.map +1 -1
- package/lib/Mirakurun/ChannelItem.d.ts +1 -6
- package/lib/Mirakurun/ChannelItem.js +2 -116
- package/lib/Mirakurun/ChannelItem.js.map +1 -1
- package/lib/Mirakurun/Event.d.ts +6 -13
- package/lib/Mirakurun/Event.js.map +1 -1
- package/lib/Mirakurun/Job.d.ts +69 -0
- package/lib/Mirakurun/Job.js +482 -0
- package/lib/Mirakurun/Job.js.map +1 -0
- package/lib/Mirakurun/Program.d.ts +1 -2
- package/lib/Mirakurun/Program.js +38 -28
- package/lib/Mirakurun/Program.js.map +1 -1
- package/lib/Mirakurun/Server.d.ts +5 -0
- package/lib/Mirakurun/Server.js +91 -52
- package/lib/Mirakurun/Server.js.map +1 -1
- package/lib/Mirakurun/Service.d.ts +7 -2
- package/lib/Mirakurun/Service.js +143 -7
- package/lib/Mirakurun/Service.js.map +1 -1
- package/lib/Mirakurun/Tuner.d.ts +4 -0
- package/lib/Mirakurun/Tuner.js +124 -103
- package/lib/Mirakurun/Tuner.js.map +1 -1
- package/lib/Mirakurun/TunerDevice.d.ts +1 -1
- package/lib/Mirakurun/TunerDevice.js +13 -18
- package/lib/Mirakurun/TunerDevice.js.map +1 -1
- package/lib/Mirakurun/_.d.ts +2 -0
- package/lib/Mirakurun/_.js.map +1 -1
- package/lib/Mirakurun/api/events/stream.js.map +1 -1
- package/lib/Mirakurun/api/job-schedules/{key}/run.d.ts +8 -0
- package/lib/Mirakurun/api/job-schedules/{key}/run.js +93 -0
- package/lib/Mirakurun/api/job-schedules/{key}/run.js.map +1 -0
- package/lib/Mirakurun/api/job-schedules.d.ts +2 -0
- package/lib/Mirakurun/api/job-schedules.js +68 -0
- package/lib/Mirakurun/api/job-schedules.js.map +1 -0
- package/lib/Mirakurun/api/jobs/{id}/abort.d.ts +8 -0
- package/lib/Mirakurun/api/jobs/{id}/abort.js +85 -0
- package/lib/Mirakurun/api/jobs/{id}/abort.js.map +1 -0
- package/lib/Mirakurun/api/jobs/{id}/rerun.d.ts +8 -0
- package/lib/Mirakurun/api/jobs/{id}/rerun.js +85 -0
- package/lib/Mirakurun/api/jobs/{id}/rerun.js.map +1 -0
- package/lib/Mirakurun/api/jobs.d.ts +2 -0
- package/lib/Mirakurun/api/jobs.js +68 -0
- package/lib/Mirakurun/api/jobs.js.map +1 -0
- package/lib/Mirakurun/api/tuners/{index}.js +2 -2
- package/lib/Mirakurun/api/tuners/{index}.js.map +1 -1
- package/lib/Mirakurun/common.d.ts +5 -0
- package/lib/Mirakurun/common.js +40 -0
- package/lib/Mirakurun/common.js.map +1 -1
- package/lib/Mirakurun/config.js +25 -6
- package/lib/Mirakurun/config.js.map +1 -1
- package/lib/Mirakurun/db.d.ts +2 -2
- package/lib/Mirakurun/db.js +24 -24
- package/lib/Mirakurun/db.js.map +1 -1
- package/lib/Mirakurun/rpc.js +28 -4
- package/lib/Mirakurun/rpc.js.map +1 -1
- package/lib/client.d.ts +4 -1
- package/lib/client.js +8 -1
- package/lib/client.js.map +1 -1
- package/lib/server.js +4 -0
- package/lib/server.js.map +1 -1
- package/lib/tsconfig.tsbuildinfo +1 -1
- package/lib/ui/assets/24f2ece9e56f8427a67e.ttf +0 -0
- package/lib/ui/assets/3dd8a3908ca677a5883a.woff2 +0 -0
- package/lib/ui/assets/56858bb41ed5877793c7.woff +0 -0
- package/lib/ui/assets/79f5ffa16f64257c1ba4.eot +0 -0
- package/lib/ui/assets/ac3753b19425271d124b.eot +0 -0
- package/lib/ui/assets/ac7c217773ea8b74720c.woff2 +0 -0
- package/lib/ui/assets/d4183e6c2c3a01b76c49.woff +0 -0
- package/lib/ui/assets/f0cbba8bb2af0749e4be.ttf +0 -0
- package/lib/ui/index.bundle.js +6015 -2006
- package/lib/ui/index.bundle.js.map +1 -1
- package/lib/ui/index.html +2 -5
- package/lib/ui/redoc-ui.html +2 -2
- package/lib/ui/vendors.bundle.js +97219 -71527
- package/lib/ui/vendors.bundle.js.map +1 -1
- package/package.json +24 -14
- package/lib/Mirakurun/queue.d.ts +0 -3
- package/lib/Mirakurun/queue.js +0 -5
- package/lib/Mirakurun/queue.js.map +0 -1
- package/lib/ui/index.dev.html +0 -18
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: "Use when writing commit messages, PR titles, or changelog summaries. Enforces the repository's conventional commit format and scope conventions."
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
# Commit Message Guidelines
|
|
6
|
+
|
|
7
|
+
- Use the format: `<type>(<scope>): <subject>`
|
|
8
|
+
- Keep the subject short, clear, and in present tense.
|
|
9
|
+
- Prefer Japanese when natural and consistent with the current project context.
|
|
10
|
+
|
|
11
|
+
## Type
|
|
12
|
+
|
|
13
|
+
Use one of the following:
|
|
14
|
+
|
|
15
|
+
- `feat`: new or changed feature
|
|
16
|
+
- `fix`: bug fix
|
|
17
|
+
- `docs`: documentation only
|
|
18
|
+
- `style`: formatting / whitespace / linting
|
|
19
|
+
- `refactor`: structural change without behavior change
|
|
20
|
+
- `test`: tests added or refactored
|
|
21
|
+
- `chore`: maintenance tasks
|
|
22
|
+
- `perf`: performance improvement
|
|
23
|
+
- `ci`: CI/CD changes
|
|
24
|
+
- `revert`: revert a previous commit
|
|
25
|
+
|
|
26
|
+
## Scope
|
|
27
|
+
|
|
28
|
+
Use the part of the codebase affected:
|
|
29
|
+
|
|
30
|
+
- `ui` for UI changes, or `ui/$ClassName` / `ui/$ModuleName`
|
|
31
|
+
- `api` for API changes, or `api/$operationId` / `api/$path`
|
|
32
|
+
- `$ClassName` or `$ModuleName` for other code areas
|
|
33
|
+
|
|
34
|
+
## Subject
|
|
35
|
+
|
|
36
|
+
- Summarize the change in one concise line.
|
|
37
|
+
- Prefer action-oriented wording such as "追加", "改善", "修正" when appropriate.
|
|
38
|
+
- Avoid vague words like "update", "fix", or "change" without context.
|
|
39
|
+
|
|
40
|
+
## Examples
|
|
41
|
+
|
|
42
|
+
- `chore(package.json): 依存関係のアップデート`
|
|
43
|
+
- `feat(ui/ExampleView): サンプルボタンの追加`
|
|
44
|
+
- `perf(TSFilter): チャンク処理のパフォーマンスを向上`
|
package/AGENTS.md
ADDED
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
# AGENTS.md
|
|
2
|
+
|
|
3
|
+
このリポジトリで作業するエージェント向けのガイドです。対象範囲はリポジトリ全体です。
|
|
4
|
+
|
|
5
|
+
## 最優先
|
|
6
|
+
|
|
7
|
+
- 変更前に既存実装と設定を確認する。
|
|
8
|
+
- 不要なリファクタリングや整形変更はしない。
|
|
9
|
+
- 既存の未コミット変更は触らない。明示的な依頼がない限り巻き戻さない。
|
|
10
|
+
- 変更は最小差分で行う。
|
|
11
|
+
|
|
12
|
+
## プロジェクト概要
|
|
13
|
+
|
|
14
|
+
Mirakurun は、日本のデジタル TV チューナー向け API サーバーです。Node.js / TypeScript で実装され、サーバー側は Express と express-openapi、Web UI は React 18、React Router、Blueprint UI、Sass、webpack を使用します。
|
|
15
|
+
|
|
16
|
+
## 主要ディレクトリ
|
|
17
|
+
|
|
18
|
+
- `src/Mirakurun`: サーバー本体、チューナー管理、EPG、ストリーム処理、設定読み込み。
|
|
19
|
+
- `src/Mirakurun/api`: express-openapi の operation 実装。ファイルパスが API パスに対応。
|
|
20
|
+
- `src/ui`: Web UI。React コンポーネント、ルート、Sass、UI 用 TypeScript 設定。
|
|
21
|
+
- `config`: 既定の設定ファイル。実行時に環境変数や Docker 設定とマージされる場合がある。
|
|
22
|
+
- `doc`: セットアップ、設定、プラットフォーム関連のドキュメント。
|
|
23
|
+
- `test`: Node.js 標準テストランナーのテスト。通常は `lib` のビルド済み JS を読む。
|
|
24
|
+
- `docker`: Dockerfile、Compose 設定、コンテナ初期化スクリプト。
|
|
25
|
+
- `lib`: ビルド出力。必要な場合以外は手編集しない。
|
|
26
|
+
|
|
27
|
+
## 開発コマンド
|
|
28
|
+
|
|
29
|
+
- 依存関係のインストール: `npm install`
|
|
30
|
+
- サーバーと UI のビルド: `npm run build`
|
|
31
|
+
- サーバーのみのビルドと TSLint: `npm run build:server`
|
|
32
|
+
- UI の webpack ビルド: `npm run build:webpack`
|
|
33
|
+
- テスト: `npm test`
|
|
34
|
+
- テストの watch 実行: `npm run test:watch`
|
|
35
|
+
- watch ビルド: `npm run watch`
|
|
36
|
+
- 開発起動: `npm run start`
|
|
37
|
+
- デバッグ起動: `npm run debug`
|
|
38
|
+
- クリーンアップ: `npm run clean`
|
|
39
|
+
- Docker ビルド: `npm run docker:build`
|
|
40
|
+
- Docker 起動: `npm run docker:run` または `npm run docker:up`
|
|
41
|
+
- Docker セットアップ起動: `npm run docker:run-setup`
|
|
42
|
+
- Docker コンテナ内シェル: `npm run docker:bash`
|
|
43
|
+
- Docker デバッグ起動: `npm run docker:debug`
|
|
44
|
+
- Docker 停止: `npm run docker:down`
|
|
45
|
+
- Docker ログ: `npm run docker:logs`
|
|
46
|
+
|
|
47
|
+
テストは `../lib/...` のビルド済み JS を参照することがあります。通常は `npm run build` の後に `npm test` を実行してください。
|
|
48
|
+
|
|
49
|
+
## コーディング規約
|
|
50
|
+
|
|
51
|
+
- TypeScript は `tslint.json` に従う。
|
|
52
|
+
- 既存コードに合わせて、ダブルクォート、セミコロン、スペースインデントを使う。
|
|
53
|
+
- 既存ファイルの Apache License ヘッダーは維持する。新規ファイルも周辺に合わせる。
|
|
54
|
+
- 公開 API や型を変える場合は、関連する定義も同時に更新する。
|
|
55
|
+
- JSON レスポンスは既存の `src/Mirakurun/api.ts` の helper を優先する。
|
|
56
|
+
|
|
57
|
+
## API 変更時の注意
|
|
58
|
+
|
|
59
|
+
- API の実装は `src/Mirakurun/api/**` に置く。
|
|
60
|
+
- `Operation` と `apiDoc` は既存パターンに合わせる。
|
|
61
|
+
- API パス、レスポンス、リクエスト body、定義型を変える場合は `api.yml` と整合させる。
|
|
62
|
+
- 公開型を変える場合は `api.d.ts` と必要に応じて `index.d.ts` も更新する。
|
|
63
|
+
- ストリーム系 API はチューナー資源、エラー変換、接続終了時の後処理に注意する。
|
|
64
|
+
|
|
65
|
+
## UI 変更時の注意
|
|
66
|
+
|
|
67
|
+
- UI は `src/ui/tsconfig.json` と `webpack.config.js` 経由でビルドされる。
|
|
68
|
+
- ルートは `src/ui/index.tsx`、画面実装は主に `src/ui/routes`、共通部品は `src/ui/components` にある。
|
|
69
|
+
- 既存の Blueprint UI、Blueprint Icons、Sass の設計に合わせる。
|
|
70
|
+
- 共有状態や RPC / REST 取得は `src/ui/modules/state.ts` の既存パターンを優先する。
|
|
71
|
+
- UI の表示時刻は Luxon の `Asia/Tokyo` / `ja` 前提を維持する。
|
|
72
|
+
|
|
73
|
+
## 設定と実行時挙動
|
|
74
|
+
|
|
75
|
+
- `config/server.yml`, `config/tuners.yml`, `config/channels.yml` は既定値。
|
|
76
|
+
- Docker 実行時は環境変数でサーバー設定が上書き・マージされる。
|
|
77
|
+
- 実機チューナー、DVB/ISDB デバイス、ネットワーク、Unix ドメインソケットに依存する処理は、ローカルで再現できない場合がある。
|
|
78
|
+
- 再現できない場合は、影響範囲を明記して、可能な範囲でユニットテストや静的検証を行う。
|
|
79
|
+
|
|
80
|
+
## 変更後の確認
|
|
81
|
+
|
|
82
|
+
- TypeScript / API / UI の変更では、基本的に `npm run build` を実行する。
|
|
83
|
+
- 挙動変更やロジック変更では、`npm run build` 後に `npm test` を実行する。
|
|
84
|
+
- ドキュメントのみの変更では、内容の目視確認でよい。
|
|
85
|
+
- 実行できなかった検証は、最終報告で理由を明記する。
|
package/CHANGELOG.md
CHANGED
|
@@ -2,10 +2,190 @@
|
|
|
2
2
|
|
|
3
3
|
see [Commit Logs](https://github.com/Chinachu/Mirakurun/commits/master) to check all.
|
|
4
4
|
|
|
5
|
-
## 4.
|
|
5
|
+
## 4.1.2 (2026-06-19)
|
|
6
|
+
|
|
7
|
+
### Server
|
|
8
|
+
|
|
9
|
+
- 🐛 TunerDevice: remote decoder を有効にしている場合でも decoder が定義されている場合は remote/local 両方で decoder 処理をしてしまうバグの修正
|
|
10
|
+
|
|
11
|
+
### UI
|
|
12
|
+
|
|
13
|
+
- ✨ HomeView: 局ロゴ見切れの修正とその他スタイルの調整
|
|
14
|
+
- ✨ HomeView: サービス一覧から EPG 番組表へのリンクを追加
|
|
15
|
+
|
|
16
|
+
## 4.1.1 (2026-06-15)
|
|
17
|
+
|
|
18
|
+
動作環境やユースケースを鑑みて、このバージョンから、このプロジェクトは基本的に日本語を使用します。ドキュメントや UI 等も順次日本語となります。何卒ご了承下さい 🙏
|
|
19
|
+
|
|
20
|
+
### Known Issues
|
|
21
|
+
|
|
22
|
+
- **UI**
|
|
23
|
+
- Home: 旧 UI からの仮移植です。表示崩れや余白不足、局ロゴの見切れがあります。
|
|
24
|
+
|
|
25
|
+
### Docker
|
|
26
|
+
|
|
27
|
+
- 🆙 ベースイメージを `node:22.14.0-bookworm` → `node:24.16.0-bookworm` に更新
|
|
28
|
+
|
|
29
|
+
### Server
|
|
30
|
+
|
|
31
|
+
- 🆙 Node.js エンジン要件: `^18 || ^20 || ^22` → `^22 || ^24`
|
|
32
|
+
- 👾 Config: allowPNA の型チェックを修正 (*bug*)
|
|
33
|
+
|
|
34
|
+
### UI
|
|
35
|
+
|
|
36
|
+
- ✨ Fluent UI から Blueprint へ UI ベースコンポーネントを変更し、UI を刷新
|
|
37
|
+
- 🆕 ライトテーマ / ダークテーマ の切り替え
|
|
38
|
+
- 🆕 EPG, 番組検索, 番組詳細表示
|
|
39
|
+
|
|
40
|
+
## About 4.0.0
|
|
6
41
|
|
|
7
42
|
**Important Notice**: Mirakurun 4.0.0 includes significant performance improvements, enhanced EPG processing, asynchronous file I/O operations, and new features. As announced in 3.9.0, the experimental Win32 support has been completely removed.
|
|
8
43
|
|
|
44
|
+
## 4.0.0-beta.17 (2025-04-11)
|
|
45
|
+
|
|
46
|
+
### Server Changes
|
|
47
|
+
|
|
48
|
+
- **Service**:
|
|
49
|
+
- Fixed a bug in the loading services.
|
|
50
|
+
|
|
51
|
+
## 4.0.0-beta.17 (2025-04-10)
|
|
52
|
+
|
|
53
|
+
### Server Changes
|
|
54
|
+
|
|
55
|
+
- **Server**:
|
|
56
|
+
- Allow access to the Web UI through the allowOrigins setting.
|
|
57
|
+
- **Channel**:
|
|
58
|
+
- Fixed a bug in the readyFn of EPG gatherer job.
|
|
59
|
+
- **Tuner**:
|
|
60
|
+
- Improved readyForJob logic for better tuner selection.
|
|
61
|
+
- Added logging for tuner selection process.
|
|
62
|
+
- **TunerDevice**:
|
|
63
|
+
- Added channel type to command template replacement.
|
|
64
|
+
|
|
65
|
+
## 4.0.0-beta.16 (2025-04-01)
|
|
66
|
+
|
|
67
|
+
### Server Changes
|
|
68
|
+
|
|
69
|
+
- **Job**:
|
|
70
|
+
- Jobs can now be rerun.
|
|
71
|
+
- Maximum number of runs can now be set.
|
|
72
|
+
- **Config**:
|
|
73
|
+
- Added: `jobMaxRunning`, `jobMaxStandby` server configs.
|
|
74
|
+
- **API**:
|
|
75
|
+
- Added: `rerunJob` operations.
|
|
76
|
+
- **UI**:
|
|
77
|
+
- **JobsView**: Added support to rerun Job.
|
|
78
|
+
- **ServerConfigurator**: Added job settings.
|
|
79
|
+
|
|
80
|
+
## 4.0.0-beta.15 (2025-03-30)
|
|
81
|
+
|
|
82
|
+
Bugfix of `@4.0.0-beta.14`.
|
|
83
|
+
|
|
84
|
+
## 4.0.0-beta.14 (2025-03-30)
|
|
85
|
+
|
|
86
|
+
### Key Changes
|
|
87
|
+
|
|
88
|
+
- **Job/Queue**: Improved background job mechanism for like EPG updates.
|
|
89
|
+
- **Users can now request EPG updates at any time.**
|
|
90
|
+
- Job execution schedules can now be set in a **cron-like format**.
|
|
91
|
+
- <u>Jobs are now executed in parallel</u> according to the number of CPU cores and resource availability.
|
|
92
|
+
- At the moment, the number of parallel executions is `Math.max(1, Math.floor(os.cpus().length / 2))`, but it will be made configurable in the ~~future~~. → `@4.0.0-beta.16`
|
|
93
|
+
|
|
94
|
+
### Server Changes
|
|
95
|
+
|
|
96
|
+
- **Config**:
|
|
97
|
+
- Added: `programGCJobSchedule`, `epgGatheringJobSchedule` server configs.
|
|
98
|
+
- Removed: `programGCInterval`, `epgGatheringInterval` server configs. (*breaking change*)
|
|
99
|
+
- Settings are not migrated. If you have customized, you must re-configure them in cron-like format, which can be changed from the Web UI.
|
|
100
|
+
- see: [Configuration](doc/Configuration.md) ([日本語](doc/Configuration.ja.md))
|
|
101
|
+
- **API**:
|
|
102
|
+
- Added: `runJobSchedule`, `abortJob` operations.
|
|
103
|
+
- **UI**:
|
|
104
|
+
- **JobsView**: added.
|
|
105
|
+
- **ServerConfigurator**: updated.
|
|
106
|
+
|
|
107
|
+
## 4.0.0-beta.13 (2025-03-29)
|
|
108
|
+
|
|
109
|
+
### Docker Changes
|
|
110
|
+
|
|
111
|
+
- Added `DISABLE_PCSCD` environment variable to disable pcscd service.
|
|
112
|
+
- Added `DISABLE_B25_TEST` environment variable to disable B25 test decoder installation.
|
|
113
|
+
- Updated `docker-compose.yml` - For testing purposes, all devices can be accessed without setting "devices" by default.
|
|
114
|
+
- **The previous default setting required a restart of the container when the card reader's USB was unplugged and plugged in, but the new default setting restores it automatically.** please check the [docker-compose.yml](docker/docker-compose.yml).
|
|
115
|
+
- **以前のデフォルト設定では、カードリーダーの USB を抜き差しすると、コンテナの再起動が必要でしたが、今回のデフォルト設定では、自動的に復旧するようになりました。** 設定例は [docker-compose.yml](docker/docker-compose.yml) をご確認ください。
|
|
116
|
+
|
|
117
|
+
## 4.0.0-beta.12 (2025-03-21)
|
|
118
|
+
|
|
119
|
+
### Server Changes
|
|
120
|
+
|
|
121
|
+
- **Server**:
|
|
122
|
+
- Wait the LISTEN until finishes loading the program and service db at startup.
|
|
123
|
+
- **UI**:
|
|
124
|
+
- **TunersManager**: packet counter is now hidden when stream info is empty
|
|
125
|
+
|
|
126
|
+
## 4.0.0-beta.11 (2025-03-20)
|
|
127
|
+
|
|
128
|
+
### Key Changes
|
|
129
|
+
|
|
130
|
+
- **Channel Configuration**: Added new `commandVars` property to replace and extend the previous tuner command options
|
|
131
|
+
- Supports any custom command variables (not limited to predefined keys)
|
|
132
|
+
- Added support for arguments containing whitespace using quotes
|
|
133
|
+
- Previous options (`satellite`, `space`, `freq`, `polarity`) are now soft-deprecated but still work - Automatically migrates existing configurations to the new format
|
|
134
|
+
|
|
135
|
+
```yaml
|
|
136
|
+
# Tuner Device Item Configuration
|
|
137
|
+
- name: Example-Tuner
|
|
138
|
+
types:
|
|
139
|
+
- GR
|
|
140
|
+
...
|
|
141
|
+
command: cmd <channel> --arg1 --arg2 <exampleArg1> <exampleArg2> "<exampleArg3>" -
|
|
142
|
+
|
|
143
|
+
# Channel Item Configuration
|
|
144
|
+
- name: Example-Ch
|
|
145
|
+
type: GR
|
|
146
|
+
channel: '123'
|
|
147
|
+
...
|
|
148
|
+
commandVars: # new
|
|
149
|
+
exampleArg1: -arg0 -arg1=example
|
|
150
|
+
exampleArg2: -arg2 "whitespace is now supported using quote"
|
|
151
|
+
exampleArg3: white space
|
|
152
|
+
...
|
|
153
|
+
```
|
|
154
|
+
- This implementation is inspired by the [extra-args already implemented in mirakc](https://github.com/mirakc/mirakc/blob/1fbbd9875bcb2de9143e2dc73be8ac6d54ed0965/docs/config.md#channels), but in a different way. This is so that appropriate arguments can be defined even in an environment where different tuner commands are mixed.
|
|
155
|
+
|
|
156
|
+
### Server Changes
|
|
157
|
+
|
|
158
|
+
- **API**:
|
|
159
|
+
- Deprecated several channel configuration properties in favor of the new `commandVars` property
|
|
160
|
+
- **Channel**:
|
|
161
|
+
- Improved handling of tuner command parameters with expanded configuration options
|
|
162
|
+
- Migrated from hardcoded parameters to flexible variable substitution
|
|
163
|
+
- **TunerDevice**:
|
|
164
|
+
- Enhanced command string handling with support for quoted arguments containing whitespace
|
|
165
|
+
- Improved command template variable substitution
|
|
166
|
+
- **UI**:
|
|
167
|
+
- **ChannelsConfigurator**: Significantly improved the channel configuration interface
|
|
168
|
+
- Added visual editor for command arguments with dynamic add/remove capability
|
|
169
|
+
- Removed column headers for cleaner interface
|
|
170
|
+
- Automatically migrates deprecated configuration properties to the new format
|
|
171
|
+
|
|
172
|
+
## 4.0.0-beta.10 (2025-03-17)
|
|
173
|
+
|
|
174
|
+
### Server Changes
|
|
175
|
+
|
|
176
|
+
- **Server**:
|
|
177
|
+
- Added test mode support for unit/integration testing
|
|
178
|
+
- Added deinit method (not used yet)
|
|
179
|
+
- Improved server init with proper async handling
|
|
180
|
+
- **API**:
|
|
181
|
+
- **getTuner**: Fixed 500 error on not found (*bug*)
|
|
182
|
+
|
|
183
|
+
### Client Changes
|
|
184
|
+
|
|
185
|
+
- **getDocs**: Added to get API spec docs
|
|
186
|
+
|
|
187
|
+
## 4.0.0-beta.9 (2025-03-16)
|
|
188
|
+
|
|
9
189
|
### Server Changes
|
|
10
190
|
|
|
11
191
|
- **UI**:
|
package/README.ja.md
ADDED
|
@@ -0,0 +1,125 @@
|
|
|
1
|
+
[](https://github.com/Chinachu/Mirakurun)
|
|
2
|
+
|
|
3
|
+
# Mirakurun
|
|
4
|
+
|
|
5
|
+
"Air" (開発中アプリのコードネーム) のために設計された日本のデジタルテレビチューナー API サーバーです。
|
|
6
|
+
|
|
7
|
+
[![npm version][npm-img]][npm-url]
|
|
8
|
+
[![npm downloads][downloads-image]][downloads-url]
|
|
9
|
+
[![Linux Build][azure-pipelines-img]][azure-pipelines-url]
|
|
10
|
+
[](https://tip4commit.com/github/Chinachu/Mirakurun)
|
|
11
|
+
[](#backers)
|
|
12
|
+
[](#sponsors)
|
|
13
|
+
|
|
14
|
+
[**CHANGELOG**](CHANGELOG.md) | [**環境構築**](doc/Platforms.ja.md) | [**設定**](doc/Configuration.ja.md)
|
|
15
|
+
|
|
16
|
+
[**English**](README.md) | [**日本語**](README.ja.md)
|
|
17
|
+
|
|
18
|
+
## Docker
|
|
19
|
+
|
|
20
|
+
[][docker-url]
|
|
21
|
+
|
|
22
|
+
参照: 利用可能な[タグ一覧](https://hub.docker.com/r/chinachu/mirakurun/tags) (Docker Hub)
|
|
23
|
+
|
|
24
|
+
## 特徴
|
|
25
|
+
|
|
26
|
+
- HTTP RESTful API (Swagger / Open API 2.0)
|
|
27
|
+
- 高度なチューナープロセス管理
|
|
28
|
+
- 単一チューニングでの複数ストリーム配信
|
|
29
|
+
- ストリーム優先度
|
|
30
|
+
- MPEG-2 TS パーサー、フィルター
|
|
31
|
+
- リアルタイム EPG パーサー
|
|
32
|
+
- 様々なチューナーデバイスと混合環境に対応 (chardev, DVB / ISDB-T, ISDB-S, DVB-S2)
|
|
33
|
+
- 自動チャンネルスキャン
|
|
34
|
+
- Web UI
|
|
35
|
+
- IPTV サーバー (M3U8 プレイリスト, XMLTV)
|
|
36
|
+
|
|
37
|
+
#### 図: MPEG-2 TS ストリーム API の多様性
|
|
38
|
+
|
|
39
|
+

|
|
40
|
+
|
|
41
|
+
#### 図: ストリームフロー
|
|
42
|
+
|
|
43
|
+

|
|
44
|
+
|
|
45
|
+
## 環境構築
|
|
46
|
+
|
|
47
|
+
👉 [**環境構築**](doc/Platforms.ja.md)
|
|
48
|
+
|
|
49
|
+
## 設定
|
|
50
|
+
|
|
51
|
+
👉 [**設定**](doc/Configuration.ja.md)
|
|
52
|
+
|
|
53
|
+
## Web UI
|
|
54
|
+
|
|
55
|
+
```sh
|
|
56
|
+
# 管理 UI
|
|
57
|
+
http://_your_mirakurun_ip_:40772/
|
|
58
|
+
|
|
59
|
+
# Swagger UI
|
|
60
|
+
http://_your_mirakurun_ip_:40772/api/debug
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
## クライアント実装
|
|
64
|
+
|
|
65
|
+
- [Rivarun](https://github.com/Chinachu/Rivarun)
|
|
66
|
+
- [BonDriver_Mirakurun](https://github.com/Chinachu/BonDriver_Mirakurun)
|
|
67
|
+
- Mirakurun クライアント ([組み込み](https://github.com/Chinachu/Mirakurun/blob/master/src/client.ts))
|
|
68
|
+
- "Air" (開発コードネーム)
|
|
69
|
+
- [Chinachu γ](https://github.com/Chinachu/Chinachu/wiki/Gamma-Installation-V2)
|
|
70
|
+
- [EPGStation](https://github.com/l3tnun/EPGStation)
|
|
71
|
+
|
|
72
|
+
## 貢献
|
|
73
|
+
|
|
74
|
+
- [CONTRIBUTING.md](CONTRIBUTING.md)
|
|
75
|
+
|
|
76
|
+
## 寄付
|
|
77
|
+
|
|
78
|
+
- [Tip4Commit](https://tip4commit.com/github/Chinachu/Mirakurun) (BTC) - すべてのコミッターへ分配されます
|
|
79
|
+
- [Open Collective](https://opencollective.com/Mirakurun) (USD) - プール (使途未定)
|
|
80
|
+
|
|
81
|
+
## Discord コミュニティ
|
|
82
|
+
|
|
83
|
+
- 招待リンク: https://discord.gg/X7KU5W9
|
|
84
|
+
|
|
85
|
+
## Contributors
|
|
86
|
+
|
|
87
|
+
このプロジェクトは貢献してくださるすべての方々のおかげで成り立っています。
|
|
88
|
+
<a href="https://github.com/Chinachu/Mirakurun/graphs/contributors"><img src="https://opencollective.com/Mirakurun/contributors.svg?width=890&button=false" /></a>
|
|
89
|
+
|
|
90
|
+
## Backers
|
|
91
|
+
|
|
92
|
+
すべての Backer の皆様、ありがとうございます! 🙏 [[Backer になる](https://opencollective.com/Mirakurun#backer)]
|
|
93
|
+
|
|
94
|
+
<a href="https://opencollective.com/Mirakurun#backers" target="_blank"><img src="https://opencollective.com/Mirakurun/backers.svg?width=890"></a>
|
|
95
|
+
|
|
96
|
+
## Sponsors
|
|
97
|
+
|
|
98
|
+
スポンサーになってこのプロジェクトをサポートしてください。あなたのロゴがウェブサイトへのリンクとともにここに表示されます。 [[スポンサーになる](https://opencollective.com/Mirakurun#sponsor)]
|
|
99
|
+
|
|
100
|
+
<a href="https://opencollective.com/Mirakurun/sponsor/0/website" target="_blank"><img src="https://opencollective.com/Mirakurun/sponsor/0/avatar.svg"></a>
|
|
101
|
+
<a href="https://opencollective.com/Mirakurun/sponsor/1/website" target="_blank"><img src="https://opencollective.com/Mirakurun/sponsor/1/avatar.svg"></a>
|
|
102
|
+
<a href="https://opencollective.com/Mirakurun/sponsor/2/website" target="_blank"><img src="https://opencollective.com/Mirakurun/sponsor/2/avatar.svg"></a>
|
|
103
|
+
<a href="https://opencollective.com/Mirakurun/sponsor/3/website" target="_blank"><img src="https://opencollective.com/Mirakurun/sponsor/3/avatar.svg"></a>
|
|
104
|
+
<a href="https://opencollective.com/Mirakurun/sponsor/4/website" target="_blank"><img src="https://opencollective.com/Mirakurun/sponsor/4/avatar.svg"></a>
|
|
105
|
+
<a href="https://opencollective.com/Mirakurun/sponsor/5/website" target="_blank"><img src="https://opencollective.com/Mirakurun/sponsor/5/avatar.svg"></a>
|
|
106
|
+
<a href="https://opencollective.com/Mirakurun/sponsor/6/website" target="_blank"><img src="https://opencollective.com/Mirakurun/sponsor/6/avatar.svg"></a>
|
|
107
|
+
<a href="https://opencollective.com/Mirakurun/sponsor/7/website" target="_blank"><img src="https://opencollective.com/Mirakurun/sponsor/7/avatar.svg"></a>
|
|
108
|
+
<a href="https://opencollective.com/Mirakurun/sponsor/8/website" target="_blank"><img src="https://opencollective.com/Mirakurun/sponsor/8/avatar.svg"></a>
|
|
109
|
+
<a href="https://opencollective.com/Mirakurun/sponsor/9/website" target="_blank"><img src="https://opencollective.com/Mirakurun/sponsor/9/avatar.svg"></a>
|
|
110
|
+
|
|
111
|
+
## 著作権 / ライセンス
|
|
112
|
+
|
|
113
|
+
© 2016- [kanreisa](https://github.com/kanreisa).
|
|
114
|
+
|
|
115
|
+
- コード: [Apache License, Version 2.0](LICENSE)
|
|
116
|
+
- ドキュメント: [CC BY 4.0](https://creativecommons.org/licenses/by/4.0/)
|
|
117
|
+
- ロゴ: [CC BY-SA 4.0](https://creativecommons.org/licenses/by-sa/4.0/)
|
|
118
|
+
|
|
119
|
+
[npm-img]: https://img.shields.io/npm/v/mirakurun.svg
|
|
120
|
+
[npm-url]: https://npmjs.org/package/mirakurun
|
|
121
|
+
[downloads-image]: https://img.shields.io/npm/dm/mirakurun.svg?style=flat
|
|
122
|
+
[downloads-url]: https://npmjs.org/package/mirakurun
|
|
123
|
+
[azure-pipelines-img]: https://dev.azure.com/chinachu/Mirakurun/_apis/build/status/Chinachu.Mirakurun?branchName=master
|
|
124
|
+
[azure-pipelines-url]: https://dev.azure.com/chinachu/Mirakurun/_build/latest?definitionId=1&branchName=master
|
|
125
|
+
[docker-url]: https://hub.docker.com/r/chinachu/mirakurun
|
package/README.md
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
[](https://github.com/Chinachu/Mirakurun)
|
|
2
2
|
|
|
3
3
|
# Mirakurun
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
A Japanese digital TV tuner API server specifically designed for "Air" (code name of the app in development).
|
|
6
6
|
|
|
7
7
|
[![npm version][npm-img]][npm-url]
|
|
8
8
|
[![npm downloads][downloads-image]][downloads-url]
|
|
@@ -11,59 +11,44 @@ DVR Tuner Server for Japanese TV which designed for the "Air" (in development co
|
|
|
11
11
|
[](#backers)
|
|
12
12
|
[](#sponsors)
|
|
13
13
|
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
[][docker-url]
|
|
14
|
+
[**CHANGELOG**](CHANGELOG.md) | [**Setup Guide**](doc/Platforms.md) | [**Configuration**](doc/Configuration.md)
|
|
17
15
|
|
|
18
|
-
|
|
16
|
+
[**English**](README.md) | [**日本語**](README.ja.md)
|
|
19
17
|
|
|
20
|
-
|
|
18
|
+
## Docker
|
|
21
19
|
|
|
22
|
-
|
|
23
|
-
mkdir ~/mirakurun/
|
|
24
|
-
cd ~/mirakurun/
|
|
25
|
-
wget https://raw.githubusercontent.com/Chinachu/Mirakurun/refs/heads/release/4.0.0/docker/docker-compose.yml
|
|
26
|
-
docker compose pull
|
|
27
|
-
docker compose run --rm -e SETUP=true mirakurun
|
|
28
|
-
docker compose up -d
|
|
29
|
-
```
|
|
20
|
+
[][docker-url]
|
|
30
21
|
|
|
31
|
-
|
|
22
|
+
Reference: List of available [tags](https://hub.docker.com/r/chinachu/mirakurun/tags) (Docker Hub)
|
|
32
23
|
|
|
33
24
|
## Features
|
|
34
25
|
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
* [Multiplexing Mirakuruns](doc/Mirakuruns.md)
|
|
46
|
-
* Web UI
|
|
47
|
-
* IPTV Server (M3U8 Playlist, XMLTV)
|
|
26
|
+
- HTTP RESTful API (Swagger / Open API 2.0)
|
|
27
|
+
- Advanced tuner process management
|
|
28
|
+
- Multiple stream broadcasting from a single tuning
|
|
29
|
+
- Stream priority
|
|
30
|
+
- MPEG-2 TS parser, filter
|
|
31
|
+
- Real-time EPG parser
|
|
32
|
+
- Support for various tuner devices and hybrid environments (chardev, DVB / ISDB-T, ISDB-S, DVB-S2)
|
|
33
|
+
- Automatic channel scanning
|
|
34
|
+
- Web UI
|
|
35
|
+
- IPTV server (M3U8 playlist, XMLTV)
|
|
48
36
|
|
|
49
37
|
#### Figure: Variety of the MPEG-2 TS Stream API
|
|
50
38
|
|
|
51
|
-

|
|
52
40
|
|
|
53
41
|
#### Figure: Stream Flow
|
|
54
42
|
|
|
55
|
-

|
|
58
44
|
|
|
59
|
-
|
|
60
|
-
* Linux w/ [Docker](https://hub.docker.com/r/chinachu/mirakurun)
|
|
45
|
+
## Setup Guide
|
|
61
46
|
|
|
62
|
-
|
|
47
|
+
👉 [**Setup Guide**](doc/Platforms.md)
|
|
63
48
|
|
|
64
|
-
##
|
|
49
|
+
## Configuration
|
|
65
50
|
|
|
66
|
-
|
|
51
|
+
👉 [**Configuration**](doc/Configuration.md)
|
|
67
52
|
|
|
68
53
|
## Web UI
|
|
69
54
|
|
|
@@ -75,28 +60,27 @@ http://_your_mirakurun_ip_:40772/
|
|
|
75
60
|
http://_your_mirakurun_ip_:40772/api/debug
|
|
76
61
|
```
|
|
77
62
|
|
|
78
|
-
|
|
79
63
|
## Client Implementations
|
|
80
64
|
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
65
|
+
- [Rivarun](https://github.com/Chinachu/Rivarun)
|
|
66
|
+
- [BonDriver_Mirakurun](https://github.com/Chinachu/BonDriver_Mirakurun)
|
|
67
|
+
- Mirakurun Client ([Built-in](https://github.com/Chinachu/Mirakurun/blob/master/src/client.ts))
|
|
68
|
+
- "Air" (in development codename)
|
|
69
|
+
- [Chinachu γ](https://github.com/Chinachu/Chinachu/wiki/Gamma-Installation-V2)
|
|
70
|
+
- [EPGStation](https://github.com/l3tnun/EPGStation)
|
|
87
71
|
|
|
88
72
|
## Contributing
|
|
89
73
|
|
|
90
|
-
[CONTRIBUTING.md](CONTRIBUTING.md)
|
|
74
|
+
- [CONTRIBUTING.md](CONTRIBUTING.md)
|
|
91
75
|
|
|
92
|
-
##
|
|
76
|
+
## Donations
|
|
93
77
|
|
|
94
|
-
|
|
95
|
-
|
|
78
|
+
- [Tip4Commit](https://tip4commit.com/github/Chinachu/Mirakurun) (BTC) - Distributed to all committers
|
|
79
|
+
- [Open Collective](https://opencollective.com/Mirakurun) (USD) - Pool (purpose undecided)
|
|
96
80
|
|
|
97
81
|
## Discord Community
|
|
98
82
|
|
|
99
|
-
|
|
83
|
+
- Invitation: https://discord.gg/X7KU5W9
|
|
100
84
|
|
|
101
85
|
## Contributors
|
|
102
86
|
|
|
@@ -128,11 +112,9 @@ Support this project by becoming a sponsor. Your logo will show up here with a l
|
|
|
128
112
|
|
|
129
113
|
© 2016- [kanreisa](https://github.com/kanreisa).
|
|
130
114
|
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
**Commercial License / Support** is provided by [Pixely LLC](https://pixely.jp/).
|
|
115
|
+
- Code: [Apache License, Version 2.0](LICENSE)
|
|
116
|
+
- Docs: [CC BY 4.0](https://creativecommons.org/licenses/by/4.0/)
|
|
117
|
+
- Logo: [CC BY-SA 4.0](https://creativecommons.org/licenses/by-sa/4.0/)
|
|
136
118
|
|
|
137
119
|
[npm-img]: https://img.shields.io/npm/v/mirakurun.svg
|
|
138
120
|
[npm-url]: https://npmjs.org/package/mirakurun
|