
2026/05/17 2:00
Show HN: ロックスカイ(Rocksky)——AT プロトコルを利用した音楽のスコッブリングと発見プラットフォーム
RSS: https://news.ycombinator.com/rss
要約▶
Japanese Translation:
Rocksky は、AT Protocol に基づく革新的な分散型音楽追跡・発見プラットフォームとして登場します(rocksky.app)。centralized サービスの堅実な代替手段を提供し、Last.fm および ListenBrainz 互換の API を提供して scrobbling が可能となり、Spotify や Jellyfin などの人気アプリケーションとシームレスに統合されます。本システムは、最近再生履歴タイムライン、ストーリーズビュー、再生統計、パーソナライズされたチャート(上位アーティスト・トラック)、シャウトボックスや好みに基づくソーシャルツールなどを含む機能でユーザーを支援します。検索には MeiliSearch が採用されており、瞬時の結果を得られます。
ユーザーフレンドリーな体験の背後には、Node.js (v22+)、Deno、Rust、Go、Turbo、Wasm Pack、DuckDB を活用する高度な技術基盤が存在し、パフォーマンスと信頼性を確保しています。Rocksky のセットアップには、
tangled.org または tangled.sh からリポジトリをクローンし、依存関係(turbo、bun)をインストール、環境変数を設定(Spotify 認証情報を含む、開発者ダッシュボード経由)、データベースマイグレーションを実行、Docker コンテナを起動する手順が含まれます。このプロセスは、コントロールを求める開発者を対象に最適化されており、分析、Jetstream、MusicBrainz、フィード、Spotify セットアップなど多様なサービス向けの turbo dev や bun run などの特定の開発コマンドが用意されています。
将来の計画も同様に野心的で、Discord/App エコシステムとの Webhook 連携、コミュニティ主導の高度なフィードアルゴリズム、Last.fm ミラーリング、Rocksky Connect、複数ソースのライブラリサポート(Google Drive、Dropbox など)、セルフホスト化ストリーミング機能、クロスデバイス設定同期を導入予定です。このオープンモデルを採用することで、Rocksky はデータがデバイス間を同期し、グローバルな開発者コミュニティからの貢献を通じて機能を継続的に拡張するエコシステムを育みます。フィードバックは、統一されたリポジトリまたは Discord サーバーを通じて提供可能で、
CONTRIBUTING.md に記載の手順に従い、Pull Request を歓迎します。本文
分散型音楽追跡・発見プラットフォーム AT Protocol を採用しています。🎵 —— Rocksky をご覧ください。
✨ 機能概要
🎵 スクロッブリング API
- Last.fm 互換 API: Last.fm のスクロブラのそのままの置き換えとして使用可能。
- ListenBrainz 互換 API: ListenBrainz をサポートしているクライアントと動作します。
🕒 再生履歴とタイムライン
- 最近のプレイ履歴: 過去の聴き込み履歴を閲覧できます。
- ストーリーズビュー: 他のユーザーがリアルタイムで何を楽しんでいるかを閲覧できます。
- 統計データ: 日ごとのスクロブル数を可視化します。
📊 ユーザーインサイト
- 主要アーティスト、トラック、アルバム: 個人の聴き癖に基づいたパーソナライズされたチャート。
- ** shouts ボックス & いいね機能**: 他のリスナーと交流し、反応を共有できます。
🌐 クライアント統合
- Spotify: 再生中のトラックを検出し、Spotify から直接スクロブルします。
- Jellyfin: メディアサーバーからの再生を追跡します。
- Pano Scrobbler: Android / Linux / Windows のサポートがあります。
- WebScrobbler: ブラウザから直接スクロブルします。
🔍 検索
- 検索エンジン: MeiliSearch を動力源として高速な検索が可能です。
🚧 近日公開予定 / ロードマップ
- Webhooks: スクロブルイベントに購読し、Discord やご自身のアプリケーションと連携します。
- パーソナライズされたフィード: コミュニティ主導のフィードアルゴリズムを通じて音楽を発見します。
- Last.fm から Rocksky へのミラーリング(将来のスクロブル): Last.fm の新しいスクロブルを自動的に Rocksky に反映させます。
- Rocksky Connect: デバイス間でのリモート再生(Spotify Connect に類似)。
- マルチソースライブラリ: Google ドライブ、Dropbox、S3、FTP などから閲覧・スクロブルします。
- 自分自身の音楽をストリーミングしてスクロブル: ライブラリをアップロードし、Rocksky で直接再生します。
- 拡張機能: ご自身の論理を用いて Rocksky をカスタマイズおよび拡張します。
- クロスフェード & イコライザー設定の同期: デバイス間で再生の好みを維持します。
📦 前提条件
- Node.js(バージョン 22 または以降)
- Deno
- Rust
- Go
- Turbo
- Docker
- Wasm Pack (https://github.com/drager/wasm-pack)
- DuckDB (https://duckdb.org/docs/installation 1.2.0)
- Spotify: Spotify Developer Dashboard で設定した
とSPOTIFY_CLIENT_IDSPOTIFY_CLIENT_SECRET
🚀 スタートアップ方法
リポジトリをクローンする
git clone git@tangled.sh:rocksky.app/rocksky cd rocksky
依存関係をインストールする
npm install -g turbo bun install bun run build:raichu
環境変数を設定する
cp apps/api/.env.example apps/api/.env cp apps/web/.env.example apps/web/.env cp apps/feeds/.env.example apps/feeds/.env cp .env.example .env # .env ファイルを編集して、ご自身の設定を追加してください
Docker コンテナを開始する
docker compose up
データベースマイグレーションを実行する
turbo db:migrate --filter=@rocksky/api
Spotify アプリの設定を行う
# SPOTIFY_ENCRYPTION_KEY と SPOTIFY_ENCRYPTION_IV 環境変数を設定することを忘れずに bun run spotify <client_id> <client_secret>
データベースの初期化(オプション)
bun run db:pgpull
アナリティクス API を開始する
bun run dev:analytics
Jetstream を開始する
bun run dev:jetstream
MusicBrainz を開始する
bun run mb
フィードを开始する
bun run feeds
開発サーバーを開始する
turbo dev --filter=@rocksky/api --filter=@rocksky/web
📚 ドキュメント
✍️ フィードバック
本リポジトリは、Rocksky に係るフィードバックと問題点を収集するための中心点です。フィードバックを記述したい場合は Issue を開いてください。ぜひ Discord サーバーにもご参加ください。
🤝 貢献について
私たちは皆様からのフィードバックや提言を心待ちにしております。まずはお問い合わせいただく際は Discord で連絡することをお勧めします。本リポジトリへの Pull Request も歓迎いたします。ローカルでのセットアップに関する詳細は
をご覧ください。CONTRIBUTING.md