{"id":34903076,"url":"https://github.com/kanoshiou/radiko-tui","last_synced_at":"2026-05-15T16:32:11.558Z","repository":{"id":328107818,"uuid":"662038874","full_name":"kanoshiou/radiko-tui","owner":"kanoshiou","description":"A Radiko Japanese internet radio player written in Go with an interactive TUI.","archived":false,"fork":false,"pushed_at":"2026-03-26T01:24:21.000Z","size":23476,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2026-03-26T23:33:11.511Z","etag":null,"topics":["small-tools","tool","tools"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/kanoshiou.png","metadata":{"files":{"readme":"README.ja.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2023-07-04T08:18:26.000Z","updated_at":"2026-03-26T01:24:17.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/kanoshiou/radiko-tui","commit_stats":null,"previous_names":["kanoshiou/radiko-tui"],"tags_count":16,"template":false,"template_full_name":null,"purl":"pkg:github/kanoshiou/radiko-tui","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kanoshiou%2Fradiko-tui","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kanoshiou%2Fradiko-tui/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kanoshiou%2Fradiko-tui/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kanoshiou%2Fradiko-tui/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/kanoshiou","download_url":"https://codeload.github.com/kanoshiou/radiko-tui/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kanoshiou%2Fradiko-tui/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33072323,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-15T11:35:32.926Z","status":"ssl_error","status_checked_at":"2026-05-15T11:35:31.362Z","response_time":103,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["small-tools","tool","tools"],"created_at":"2025-12-26T09:07:09.808Z","updated_at":"2026-05-15T16:32:11.553Z","avatar_url":"https://github.com/kanoshiou.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Radiko TUI\n\n[English](README.md) | **[日本語](README.ja.md)** | [中文](README.zh.md)\n\nGo言語で書かれたRadiko日本インターネットラジオのターミナルUI（TUI）プレーヤーです。\n\n[![Release](https://img.shields.io/github/v/release/kanoshiou/radiko-tui)](https://github.com/kanoshiou/radiko-tui/releases)\n[![Go Version](https://img.shields.io/github/go-mod/go-version/kanoshiou/radiko-tui)](https://go.dev/)\n[![Docker](https://img.shields.io/badge/docker-ghcr.io-blue)](https://github.com/kanoshiou/radiko-tui/pkgs/container/radiko-tui)\n[![License](https://img.shields.io/github/license/kanoshiou/radiko-tui)](LICENSE)\n\n## ✨ 機能\n\n- 🎵 Radikoラジオ局のライブストリーミング\n- 🗾 日本全国47都道府県対応\n- 🖥️ インタラクティブなターミナルUI（TUI）\n- 🌐 HTTPストリーミングのサーバーモード（AAC/PCM）\n- 🔌 リモートサーバーに接続するクライアントモード（ローカルffmpeg不要）\n- 🔊 ミュート機能付き音量調整\n- ⏺️ AACファイルへのストリーム録音\n- 🔄 ストリーム障害時の自動再接続\n- 💾 前回の放送局と設定を記憶\n- 🌏 クロスプラットフォーム（Windows/Linux/macOS）\n\n## 📸 スクリーンショット\n\n```\n📻 Radiko  🔊 80%\n  ◀ 埼玉 千葉 [東京] 神奈川 新潟 ▶ [13/47]\n──────────────────────────────────────────────\n  TBSラジオ TBS\n ▶ 文化放送 QRR \n  ニッポン放送 LFR\n  ラジオNIKKEI第1 RN1\n  ラジオNIKKEI第2 RN2\n  ↓ さらに表示\n\n──────────────────────────────────────────────\n▶ 文化放送 QRR  ♪ 大竹まことゴールデンラジオ  ⏺ 録音中 02:15\n↑↓ 選択  Enter 再生  ←→ 地域切替  +- 音量  m ミュート  s 停止  r 再接続  Esc 終了\n```\n\n## 📦 インストール\n\n### ビルド済みバイナリのダウンロード（推奨）\n\n[Releases](https://github.com/kanoshiou/radiko-tui/releases) からダウンロードしてください。\n\n### ソースからビルド\n\n```bash\ngit clone https://github.com/kanoshiou/radiko-tui.git\ncd radiko-tui\ngo mod tidy\ngo build -o radiko\n```\n\n### サーバー専用ビルド（オーディオ依存なし）\n\nオーディオサポートのないLinuxサーバー向け：\n\n```bash\ngo build -tags noaudio -o radiko-server\n```\n\nこのビルドはオーディオ再生依存関係（oto）を除外し、サーバーモード（`-server`フラグ）のみをサポートします。\n\n### デフォルトサーバーURL埋め込みビルド\n\nビルド時にデフォルトのサーバーURLを指定することで、実行時に毎回`-server-url`を指定する必要がなくなります：\n\n```bash\ngo build -ldflags \"-X main.defaultServerURL=http://your-server-ip:8080\" -o radiko-tui\n```\n\n注意：実行時に`--server-url`引数が指定された場合、ビルド時に埋め込まれたアドレスよりも優先されます。\n\n### Docker（サーバーモード推奨）\n\nGitHub Container Registryからプル：\n\n```bash\ndocker pull ghcr.io/kanoshiou/radiko-tui:latest\n```\n\nDockerで実行：\n\n```bash\ndocker run -d --name radiko -p 8080:8080 ghcr.io/kanoshiou/radiko-tui:latest\n```\n\nカスタムポートと猶予期間：\n\n```bash\ndocker run -d --name radiko -p 9000:9000 ghcr.io/kanoshiou/radiko-tui:latest \\\n  -server -port 9000 -grace 60\n```\n\nDocker Compose：\n\n```yaml\nversion: '3.8'\nservices:\n  radiko:\n    image: ghcr.io/kanoshiou/radiko-tui:latest\n    ports:\n      - \"8080:8080\"\n    environment:\n      - TZ=Asia/Tokyo\n    restart: unless-stopped\n```\n\n## ⚠️ 必要条件\n\n音声デコードと録音には **ffmpeg が必要** です。\n\n```bash\n# Windows (Chocolatey)\nchoco install ffmpeg\n\n# Linux (Ubuntu/Debian)\nsudo apt install ffmpeg\n\n# macOS (Homebrew)\nbrew install ffmpeg\n```\n\n## 🚀 使用方法\n\n### TUIモード（デフォルト）\n\n```bash\n./radiko-tui\n```\n\n### クライアントモード（ffmpeg不要）\n\n実行中のradiko-tuiサーバーに接続：\n\n```bash\n./radiko-tui -server-url http://192.168.1.100:8080\n```\n\nこのモードでは、音声デコードは内部で処理されます。**クライアント側にffmpegのインストールは不要です。**\nTUIの全機能（音量、地域切り替えなど）が利用可能です。\n\n### サーバーモード\n\nHTTPストリーミングサーバーとして実行：\n\n```bash\n./radiko-tui -server -port 8080\n```\n\nVLCまたは任意のオーディオプレーヤーでストリーミング：\n\n```bash\nvlc http://localhost:8080/api/play/QRR\n```\n\n#### サーバーモードの機能\n\n- **マルチクライアント対応**：複数のクライアントが同じ放送局を視聴でき、ffmpegインスタンスを共有\n- **スマートffmpeg再利用**：クライアント切断後、ffmpegは猶予期間（デフォルト10秒）稼働し続ける\n- **自動再接続**：猶予期間内にクライアントが再接続すると、既存のストリームを即座に再利用\n\n#### サーバーオプション\n\n| オプション | デフォルト | 説明 |\n|------------|------------|------|\n| `-port` | 8080 | HTTPサーバーポート |\n| `-grace` | 10 | 最後のクライアント切断後にffmpegを維持する秒数 |\n\nカスタム猶予期間の例：\n\n```bash\n./radiko-tui -server -port 8080 -grace 30\n```\n\n#### サーバーAPIエンドポイント\n\n| エンドポイント                         | 説明                                            |\n|---------------------------------|-----------------------------------------------|\n| `GET /api/play/{stationID}`     | 指定した放送局のオーディオ(AAC)をストリーミング（VLC/ブラウザ用）         |\n| `GET /api/play/{stationID}/pcm` | 指定した放送局のオーディオ(PCM)をストリーミング（radiko-tuiクライアント用） |\n| `GET /api/status`               | アクティブなストリームのJSONステータスを取得                      |\n\n### 操作方法\n\n| キー | 操作 |\n|-----|--------|\n| ↑/↓ または k/j | 放送局を選択 |\n| ←/→ または h/l | 地域を切り替え |\n| Enter/Space | 放送局を再生 |\n| +/- | 音量調整 |\n| 0-9 | 音量レベルを設定 |\n| m | ミュート切り替え |\n| s | 録音開始/停止 |\n| r | 再接続 |\n| Esc | 終了 |\n\n### 録音機能\n\n`s` キーを押すと、現在のストリームの録音を開始/停止できます。録音ファイルはダウンロードフォルダに `radiko_放送局名_YYYYMMDD_HHMMSS.aac` の形式で保存されます。\n\n再生中の放送局と異なる放送局を録音している場合、放送局名が括弧で表示されます：`⏺ 録音中[放送局名] MM:SS`\n\n## 📖 ドキュメント\n\n- [インストールガイド](docs/INSTALL.md)\n- [使用ガイド](docs/USAGE.md)\n- [トラブルシューティング](docs/TROUBLESHOOTING.md)\n- [アーキテクチャ](docs/ARCHITECTURE.md)\n\n## 🏗️ 技術スタック\n\n- **TUI**: [bubbletea](https://github.com/charmbracelet/bubbletea)\n- **オーディオ**: [oto](https://github.com/ebitengine/oto) + ffmpeg\n- **スタイリング**: [lipgloss](https://github.com/charmbracelet/lipgloss)\n\n## 🙏 謝辞\n\nインスピレーションと参考のために [rajiko](https://github.com/jackyzy823/rajiko) に感謝します。\n\n## 📋 システム要件\n\n- ffmpeg（実行時）\n- Go 1.18+（ビルド時のみ）\n- UTF-8対応ターミナル\n\n## 🤝 貢献\n\nIssueおよびPull Requestを歓迎します！\n\n## 📄 ライセンス\n\nMITライセンス - [LICENSE](LICENSE) を参照\n\n---\n\n**注意**: このプロジェクトは学習および個人使用のみを目的としています。Radikoの利用規約を遵守してください。\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkanoshiou%2Fradiko-tui","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkanoshiou%2Fradiko-tui","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkanoshiou%2Fradiko-tui/lists"}