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.
Files changed (94) hide show
  1. package/.github/instructions/commit-messages.instructions.md +44 -0
  2. package/AGENTS.md +85 -0
  3. package/CHANGELOG.md +181 -1
  4. package/README.ja.md +125 -0
  5. package/README.md +37 -55
  6. package/api.d.ts +62 -20
  7. package/api.yml +97 -25
  8. package/doc/Configuration.ja.md +149 -0
  9. package/doc/Configuration.md +117 -98
  10. package/doc/Platforms.ja.md +233 -0
  11. package/doc/Platforms.md +162 -127
  12. package/docker/container-init.sh +5 -3
  13. package/docker/docker-compose.yml +42 -22
  14. package/lib/Mirakurun/Channel.d.ts +1 -1
  15. package/lib/Mirakurun/Channel.js +98 -63
  16. package/lib/Mirakurun/Channel.js.map +1 -1
  17. package/lib/Mirakurun/ChannelItem.d.ts +1 -6
  18. package/lib/Mirakurun/ChannelItem.js +2 -116
  19. package/lib/Mirakurun/ChannelItem.js.map +1 -1
  20. package/lib/Mirakurun/Event.d.ts +6 -13
  21. package/lib/Mirakurun/Event.js.map +1 -1
  22. package/lib/Mirakurun/Job.d.ts +69 -0
  23. package/lib/Mirakurun/Job.js +482 -0
  24. package/lib/Mirakurun/Job.js.map +1 -0
  25. package/lib/Mirakurun/Program.d.ts +1 -2
  26. package/lib/Mirakurun/Program.js +38 -28
  27. package/lib/Mirakurun/Program.js.map +1 -1
  28. package/lib/Mirakurun/Server.d.ts +5 -0
  29. package/lib/Mirakurun/Server.js +91 -52
  30. package/lib/Mirakurun/Server.js.map +1 -1
  31. package/lib/Mirakurun/Service.d.ts +7 -2
  32. package/lib/Mirakurun/Service.js +143 -7
  33. package/lib/Mirakurun/Service.js.map +1 -1
  34. package/lib/Mirakurun/Tuner.d.ts +4 -0
  35. package/lib/Mirakurun/Tuner.js +124 -103
  36. package/lib/Mirakurun/Tuner.js.map +1 -1
  37. package/lib/Mirakurun/TunerDevice.d.ts +1 -1
  38. package/lib/Mirakurun/TunerDevice.js +13 -18
  39. package/lib/Mirakurun/TunerDevice.js.map +1 -1
  40. package/lib/Mirakurun/_.d.ts +2 -0
  41. package/lib/Mirakurun/_.js.map +1 -1
  42. package/lib/Mirakurun/api/events/stream.js.map +1 -1
  43. package/lib/Mirakurun/api/job-schedules/{key}/run.d.ts +8 -0
  44. package/lib/Mirakurun/api/job-schedules/{key}/run.js +93 -0
  45. package/lib/Mirakurun/api/job-schedules/{key}/run.js.map +1 -0
  46. package/lib/Mirakurun/api/job-schedules.d.ts +2 -0
  47. package/lib/Mirakurun/api/job-schedules.js +68 -0
  48. package/lib/Mirakurun/api/job-schedules.js.map +1 -0
  49. package/lib/Mirakurun/api/jobs/{id}/abort.d.ts +8 -0
  50. package/lib/Mirakurun/api/jobs/{id}/abort.js +85 -0
  51. package/lib/Mirakurun/api/jobs/{id}/abort.js.map +1 -0
  52. package/lib/Mirakurun/api/jobs/{id}/rerun.d.ts +8 -0
  53. package/lib/Mirakurun/api/jobs/{id}/rerun.js +85 -0
  54. package/lib/Mirakurun/api/jobs/{id}/rerun.js.map +1 -0
  55. package/lib/Mirakurun/api/jobs.d.ts +2 -0
  56. package/lib/Mirakurun/api/jobs.js +68 -0
  57. package/lib/Mirakurun/api/jobs.js.map +1 -0
  58. package/lib/Mirakurun/api/tuners/{index}.js +2 -2
  59. package/lib/Mirakurun/api/tuners/{index}.js.map +1 -1
  60. package/lib/Mirakurun/common.d.ts +5 -0
  61. package/lib/Mirakurun/common.js +40 -0
  62. package/lib/Mirakurun/common.js.map +1 -1
  63. package/lib/Mirakurun/config.js +25 -6
  64. package/lib/Mirakurun/config.js.map +1 -1
  65. package/lib/Mirakurun/db.d.ts +2 -2
  66. package/lib/Mirakurun/db.js +24 -24
  67. package/lib/Mirakurun/db.js.map +1 -1
  68. package/lib/Mirakurun/rpc.js +28 -4
  69. package/lib/Mirakurun/rpc.js.map +1 -1
  70. package/lib/client.d.ts +4 -1
  71. package/lib/client.js +8 -1
  72. package/lib/client.js.map +1 -1
  73. package/lib/server.js +4 -0
  74. package/lib/server.js.map +1 -1
  75. package/lib/tsconfig.tsbuildinfo +1 -1
  76. package/lib/ui/assets/24f2ece9e56f8427a67e.ttf +0 -0
  77. package/lib/ui/assets/3dd8a3908ca677a5883a.woff2 +0 -0
  78. package/lib/ui/assets/56858bb41ed5877793c7.woff +0 -0
  79. package/lib/ui/assets/79f5ffa16f64257c1ba4.eot +0 -0
  80. package/lib/ui/assets/ac3753b19425271d124b.eot +0 -0
  81. package/lib/ui/assets/ac7c217773ea8b74720c.woff2 +0 -0
  82. package/lib/ui/assets/d4183e6c2c3a01b76c49.woff +0 -0
  83. package/lib/ui/assets/f0cbba8bb2af0749e4be.ttf +0 -0
  84. package/lib/ui/index.bundle.js +6015 -2006
  85. package/lib/ui/index.bundle.js.map +1 -1
  86. package/lib/ui/index.html +2 -5
  87. package/lib/ui/redoc-ui.html +2 -2
  88. package/lib/ui/vendors.bundle.js +97219 -71527
  89. package/lib/ui/vendors.bundle.js.map +1 -1
  90. package/package.json +24 -14
  91. package/lib/Mirakurun/queue.d.ts +0 -3
  92. package/lib/Mirakurun/queue.js +0 -5
  93. package/lib/Mirakurun/queue.js.map +0 -1
  94. 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.0.0-beta.9 (2025-03-16)
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
+ [![Mirakurun](https://gist.githubusercontent.com/kanreisa/0ab27d7771e97edce5a24cc81b9b8ce6/raw/8e08d3d91390794b139ed593e3a834a8b41f651c/logo-mirakurun_2025-03-29.svg)](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
+ [![tip for next commit](https://tip4commit.com/projects/43158.svg)](https://tip4commit.com/github/Chinachu/Mirakurun)
11
+ [![Backers on Open Collective](https://opencollective.com/Mirakurun/backers/badge.svg)](#backers)
12
+ [![Sponsors on Open Collective](https://opencollective.com/Mirakurun/sponsors/badge.svg)](#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
+ [![dockeri.co](https://dockeri.co/image/chinachu/mirakurun)][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
+ ![](https://gist.githubusercontent.com/kanreisa/0ab27d7771e97edce5a24cc81b9b8ce6/raw/7409e229648e00b55404f9e8342dccb58bbb4ac4/mirakurun-fig-api-variety2.svg)
40
+
41
+ #### 図: ストリームフロー
42
+
43
+ ![](https://gist.githubusercontent.com/kanreisa/0ab27d7771e97edce5a24cc81b9b8ce6/raw/7409e229648e00b55404f9e8342dccb58bbb4ac4/mirakurun-fig-flow-stream2.svg)
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
+ &copy; 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
- [![Mirakurun](https://gist.githubusercontent.com/kanreisa/0ab27d7771e97edce5a24cc81b9b8ce6/raw/e50683f1c4e7d1a13e9ef468f8cc945b0dbc853c/logo-mirakurun.svg)](https://github.com/Chinachu/Mirakurun)
1
+ [![Mirakurun](https://gist.githubusercontent.com/kanreisa/0ab27d7771e97edce5a24cc81b9b8ce6/raw/8e08d3d91390794b139ed593e3a834a8b41f651c/logo-mirakurun_2025-03-29.svg)](https://github.com/Chinachu/Mirakurun)
2
2
 
3
3
  # Mirakurun
4
4
 
5
- DVR Tuner Server for Japanese TV which designed for the "Air" (in development codename).
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 on Open Collective](https://opencollective.com/Mirakurun/backers/badge.svg)](#backers)
12
12
  [![Sponsors on Open Collective](https://opencollective.com/Mirakurun/sponsors/badge.svg)](#sponsors)
13
13
 
14
- ## Docker
15
-
16
- [![dockeri.co](https://dockeri.co/image/chinachu/mirakurun)][docker-url]
14
+ [**CHANGELOG**](CHANGELOG.md) | [**Setup Guide**](doc/Platforms.md) | [**Configuration**](doc/Configuration.md)
17
15
 
18
- see: available [Tags](https://hub.docker.com/r/chinachu/mirakurun/tags) (Docker Hub)
16
+ [**English**](README.md) | [**日本語**](README.ja.md)
19
17
 
20
- ### Quick Install
18
+ ## Docker
21
19
 
22
- ```sh
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
+ [![dockeri.co](https://dockeri.co/image/chinachu/mirakurun)][docker-url]
30
21
 
31
- see: [doc/Platforms.md](doc/Platforms.md)
22
+ Reference: List of available [tags](https://hub.docker.com/r/chinachu/mirakurun/tags) (Docker Hub)
32
23
 
33
24
  ## Features
34
25
 
35
- * RESTful API (Open API) - has designed like HTTP version of Spinel
36
- * Unix Sockets / TCP
37
- * Advanced Tuner Process Management
38
- * Priority Management
39
- * Tuner Device Pooling
40
- * Integrated MPEG-2 TS Parser, Filter
41
- * Realtime EPG Parser
42
- * Supports most Tuner Devices (chardev, DVB / ISDB-T, ISDB-S, DVB-S2)
43
- * Channel Scan
44
- * IPv6 Support
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
- ![](https://gist.githubusercontent.com/kanreisa/0ab27d7771e97edce5a24cc81b9b8ce6/raw/e50683f1c4e7d1a13e9ef468f8cc945b0dbc853c/mirakurun-fig-api-variety.svg)
39
+ ![](https://gist.githubusercontent.com/kanreisa/0ab27d7771e97edce5a24cc81b9b8ce6/raw/7409e229648e00b55404f9e8342dccb58bbb4ac4/mirakurun-fig-api-variety2.svg)
52
40
 
53
41
  #### Figure: Stream Flow
54
42
 
55
- ![](https://gist.githubusercontent.com/kanreisa/0ab27d7771e97edce5a24cc81b9b8ce6/raw/e50683f1c4e7d1a13e9ef468f8cc945b0dbc853c/mirakurun-fig-flow-stream.svg)
56
-
57
- ## Requirements / Supported Platforms
43
+ ![](https://gist.githubusercontent.com/kanreisa/0ab27d7771e97edce5a24cc81b9b8ce6/raw/7409e229648e00b55404f9e8342dccb58bbb4ac4/mirakurun-fig-flow-stream2.svg)
58
44
 
59
- * [Node.js](http://nodejs.org/) 18, 20, 22
60
- * Linux w/ [Docker](https://hub.docker.com/r/chinachu/mirakurun)
45
+ ## Setup Guide
61
46
 
62
- see: [doc/Platforms.md](doc/Platforms.md)
47
+ 👉 [**Setup Guide**](doc/Platforms.md)
63
48
 
64
- ## **Install / Update / Uninstall / CLI**
49
+ ## Configuration
65
50
 
66
- see: [doc/Platforms.md](doc/Platforms.md)
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
- * [Rivarun](https://github.com/Chinachu/Rivarun)
82
- * [BonDriver_Mirakurun](https://github.com/Chinachu/BonDriver_Mirakurun)
83
- * Mirakurun Client ([Built-in](https://github.com/Chinachu/Mirakurun/blob/master/src/client.ts))
84
- * "Air" (in development codename)
85
- * [Chinachu γ](https://github.com/Chinachu/Chinachu/wiki/Gamma-Installation-V2)
86
- * [EPGStation](https://github.com/l3tnun/EPGStation)
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
- ## Supporting
76
+ ## Donations
93
77
 
94
- * [Tip4Commit](https://tip4commit.com/github/Chinachu/Mirakurun) (BTC) - to Every Committers
95
- * [Open Collective](https://opencollective.com/Mirakurun) (USD) - Pool (TBD)
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
- * Invitation: https://discord.gg/X7KU5W9
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
  &copy; 2016- [kanreisa](https://github.com/kanreisa).
130
114
 
131
- * Code: [Apache License, Version 2.0](LICENSE)
132
- * Docs: [CC BY 4.0](https://creativecommons.org/licenses/by/4.0/)
133
- * Logo: [CC BY-SA 4.0](https://creativecommons.org/licenses/by-sa/4.0/)
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