KonomiTV のための非公式 Android クライアント。 自宅の KonomiTV サーバーを、スマートフォンから「見る」ことに集中して使えるように作りました。ライブ、番組表、録画予約、録画、ニコニコ実況コメント、そして片手で扱えるプレイヤーが一つになっています。
KonomiTV は tsukumijima 氏のプロジェクトです。Miteru は非公式のサードパーティクライアントであり、本家とは一切関係ありません。
- 地上波 / BS / CS / その他のチャンネル一覧(ロゴ・現在の番組・次の番組・視聴者数)
- 放送の進み具合をカードの進捗バーで表示
- チャンネル名・番組名での検索、種別フィルタ
- ニコニコ実況の勢いバッジ(多 / 激多 / 祭)で盛り上がりがわかる
- サブチャンネルの表示 / 非表示(設定)
- 通信できないときは最後に取得した一覧をキャッシュから表示
- 24 時間の横スクロール番組表。チャンネル列は固定
- 今日 / 明日 / 明後日の切り替え、表示倍率の変更(1 時間 140〜360dp)
- 「現在」ボタンで現在時刻へジャンプ、赤い現在時刻ライン
- 番組詳細(ジャンル・詳細情報・予約状態)、放送中の番組はそのまま視聴
- 番組検索(キーワード、EDCB バックエンドのみ)
- 番組表の番組詳細から「録画予約」、予約済みなら「予約を取消」
- 予約タブで一覧・有効/無効の切り替え・取消
- 録画中 / チューナー不足(一部・全編不可)の状態表示
- 録画設定プリセットと優先度を選択して予約
- キーワード自動予約条件の一覧・追加・有効 / 無効・削除(除外キーワード・メモつき)
- ライブ視聴中は NX-Jikkyo のコメントをリアルタイム表示
- ライブ中はコメント投稿に対応(NX-Jikkyo に匿名 184 で送信。色 8 色・位置・サイズを選択)
- 録画再生中は過去ログコメントを再生位置に合わせて表示
- 色・サイズ・上下固定に対応。設定でオフにできます
- 文字サイズ・流れる速さ・NG ワード・NG ユーザーを設定可能(同文の連投は自動で抑止)
- サムネイル付きの録画一覧、タイトル検索、MPEG-TS / MP4 フィルタ、新しい順 / 古い順
- 未視聴フィルタ(30 秒以上見た録画を視聴済みとして記録)とジャンル別フィルタ
- シリーズ表示 — 関連する録画をシリーズごとにまとめて表示
- オフライン保存 — 録画を長押しして端末に保存(画質選択・一時停止/再開・一括削除つき)。サーバーがなくても再生可能
- 無限スクロール、視聴位置の進捗表示、「続きから」再生
- 「続きから」棚 — 視聴途中の録画がタブ先頭に並び、タップでその場から再開
- 解像度・コンテナ・ファイルサイズのメタ情報
- Media3 (ExoPlayer) によるライブ MPEG-TS / 録画 HLS 再生
- 画質の切り替え(1080p60 / 1080p / 810p / 720p / 540p / 480p / 360p / 240p)
- 主音声 / 副音声の切り替え
- ピクチャーインピクチャー、バックグラウンド再生(メディア通知)
- ダブルタップで ±10 秒シーク、ライブ時の前後チャンネル移動
- CM スキップ — CM 区間つきの録画では、CM 中に「CM をスキップ」ボタンを表示(設定で自動スキップも可)
- シークプレビュー — シーク中にその位置のサムネイルを表示
- L字カット — ワンタップで拡大して画面の縁(L 字テロップ)を切る
- オフライン再生 — 保存済みの録画はローカルから再生(画質切替は保存画質のみ)
- メニュー — コメントの一時停止 / 再開、スクリーンショット(ギャラリーへ保存)、L字カット
- ミニプレイヤー(下部ナビの上に常駐)
- システム / ダーク / ライト、ダイナミックカラー(Android 12+)
- 既定の画質、モバイル通信時の確認、続きから再生のオン / オフ
- コメントの文字サイズ・速度・NG ワード・NG ユーザー
- サブチャンネルの表示 / 非表示、CM の自動スキップ
- 複数サーバーの管理(追加・切り替え・削除)とサーバー URL の変更、キャッシュ削除
- サーバーごとに複数の接続先(自宅 LAN・外出先用など)を登録でき、使える接続先へ自動で切り替わります
- 視聴位置・視聴済みは接続先ではなくサーバーごとに保存されます
- Android 10 (API 29) 以上
- KonomiTV サーバー(API を公開しているもの。0.14 系の API スキーマを対象に実装)
- バックエンドは Mirakurun / EDCB のどちらでも可(録画予約の作成・取消は EDCB 限定)
ソースからビルドする場合:
export JAVA_HOME="$HOME/.local/share/mise/installs/java/temurin-21.0.13+9.0.LTS"
./gradlew assembleDebug
# app/build/outputs/apk/debug/app-debug.apklocal.properties に sdk.dir を設定し、Android SDK 36 を用意してください。
- GitHub Releases(署名済み・Obtainium 対応): https://github.com/satoru2727/miteru/releases
- Obtainium に
https://github.com/satoru2727/miteruを追加
- Obtainium に
- F-Droid: 2027-02 に再提出予定(前回は 3 ヶ月メンテナンス実績の不足でクローズ)
今後の予定・配布方針は ROADMAP.md を参照してください。
署名済み APK を GitHub Releases で配布します。ファイル名は miteru-<version>-universal.apk です。
- 署名鍵: リポジトリ外の
~/keys/miteru-release.jks(4096-bit RSA、10,000 日) - CI:
.github/workflows/release.ymlが Secrets(KEYSTORE_BASE64/KEYSTORE_PASSWORD/KEY_ALIAS/KEY_PASSWORD)で署名 - ローカル: リポジトリ直下に
key.propertiesがある場合だけ release に署名設定が入る - F-Droid 版とは署名が異なります。 F-Droid 版に乗り換えるときは一度アンインストールが必要です(アプリデータは引き継げません)
fastlane/metadata/android/{en-US,ja-JP}/にストア用メタデータ(説明・アイコン・スクリーンショット)を同梱- F-Droid は
key.propertiesのない状態でビルドし、F-Droid の鍵で署名します versionCode/versionNameはapp/build.gradle.kts(CI からは Gradle プロパティで上書き。F-Droid は素のビルドなので既定値が使われる = リリースごとに既定値を上げること)- 提出状況: 前回の MR はクローズ済み(テンプレート未準拠 + 3 ヶ月ルール)→ 2027-02 に再提出予定 — https://gitlab.com/fdroid/fdroiddata/-/merge_requests/55873
- クラッシュレポートは 自動送信されません。ユーザーが明示的に「共有」または「GitHub で報告」を選択したときだけ、端末外に出ます。
- レポートに含まれるサーバーの URL は自動的に伏せられます(例:
https://<server>/api/...)。 - レポートには端末・OS・アプリのバージョンが含まれますが、個人を特定できる情報は含まれません。
| 項目 | 状況 | 理由 |
|---|---|---|
| ARIB 字幕 | 未対応 | libaribcaption / aribb24 相当のデコーダ実装が必要 |
| データ放送 | 未対応 | web-bml を WebView に載せる必要がある |
| original(MPEG-2)画質 | 非対応 | Android 標準に MPEG-2 デコーダがない |
| 録画へのコメント投稿 | 未対応 | コメント投稿はライブのみ(過去ログへの投稿はサーバー側が非対応) |
| 論点 | 決定 | 理由 |
|---|---|---|
| アプリ名 | Miteru | 公式クライアントと誤認されない固有ブランドにするため |
| applicationId | io.github.satoru2727.miteru |
公開後に変更できないため最初に固定 |
| minSdk | 29 | Media3 / Compose の現実的な下限。HTTP の LAN 接続も扱いやすい |
| 画質 | ネイティブで再生できる 8 段階のみ | MPEG-2 original は Android で再生できない |
| 認証 | なし(サーバー URL のみ) | KonomiTV のユーザー機能は視聴に必須ではない |
| HTTP | 許可 | 家庭内サーバーは http://192.168.x.x:7000 が一般的 |
- 広告・解析・トラッキングなし
- 通信先はユーザーが設定した KonomiTV サーバーのみ
- 権限:
INTERNET/ACCESS_NETWORK_STATE/WAKE_LOCK/FOREGROUND_SERVICE/FOREGROUND_SERVICE_MEDIA_PLAYBACK/POST_NOTIFICATIONS allowBackup="false"(設定や視聴位置を OS のバックアップに送らない)
Unlicense(パブリックドメイン)。許可もクレジットも不要です。