世界を動かす技術を、日本語で。

Show HN: Petrichor – macOS用の無料オープンソースオフライン音楽プレーヤー

2025年7月10日原文(github.com)

概要

Petrichor はmacOS向けの オフライン音楽プレーヤー で、多彩なファイル形式と大規模ライブラリに対応。 プレイリスト作成フォルダ管理 など、直感的な操作性を重視。 macOSネイティブ統合 や高速検索など、現代的な機能を多数搭載。 今後の機能追加 や簡単なインストール方法も用意。 オープンソース で開発が進行中、貢献やフィードバックも歓迎。

Petrichor: macOS用オフライン音楽プレーヤー

  • MP3、M4A、WAV、AAC、AIFF、FLAC など主要音楽ファイル形式対応
  • 音楽フォルダのマッピング と、整理されたライブラリビューを実現
  • プレイリスト作成再生キューのインタラクティブ管理
  • 必要に応じて フォルダビュー でのブラウズ
  • サイドバーへのピン留め 機能で、お気に入りへ素早くアクセス
  • 右クリックでトラック情報(アルバム、アーティスト、年)へ即移動
  • macOSネイティブ統合 (メニューバー・Dock再生コントロール、ダークモード対応)
  • 数千曲規模の大規模ライブラリ も高速検索
  • メタデータの品質 が機能性に大きく影響

今後追加予定の主な機能

  • スマートプレイリスト (条件フィルタ設定可能)
  • イコライザー
  • Opus・OGG等の追加ファイル形式対応
  • AirPlay 2キャスト対応
  • ミニプレイヤー・フルスクリーンモード
  • 自動アプリ内アップデート
  • オンラインアルバム・アーティスト情報取得

動作要件

  • macOS 14以降

インストール方法

  • Homebrew(推奨)
    • tap追加: brew tap kushalpandya/tap
    • Petrichorインストール: brew install --cask petrichor
    • 安定版リリース後は公式Homebrewリポジトリでも公開予定
  • 手動インストール
    • Releasesページで最新の.dmgをダウンロード
    • .dmgを開き、アプリアイコンをApplicationsフォルダへドラッグ
    • Applications内でPetrichorを右クリック→「開く」

トラブルシューティング

  • Gatekeeper回避
    • notarization未済のため、右クリック→「開く」で一度だけGatekeeperをバイパス
  • dmgが開けない場合
    • ターミナルで xattr -cr ~/path/to/Petrichor-<version>-Universal.dmg
  • アプリ起動不可の場合
    • ターミナルで xattr -dr com.apple.quarantine /Applications/Petrichor.app

開発の動機

  • 長年集めた音楽コレクション の管理・再生に適したオフライン音楽プレーヤーがmacOSに不足
  • Swinsian 愛用者だったが、近年アップデートがなく機能不足を感じたため自作を決意
  • SwiftとmacOSアプリ開発の学習 を兼ねたオープンソースプロジェクト

技術概要

  • Swift・SwiftUI によるフルネイティブ実装
  • フォルダ追加時に自動スキャン・SQLiteデータベース(GRDB)へ登録
  • 音楽ファイルは非改変、指定ディレクトリを読み取りのみ
  • 検索はSQLite FTS5+インメモリ検索のフォールバック
  • 再生エンジンはAVFoundation

データベーススキーマ(主な構成)

  • folders :音楽フォルダ管理
  • artists :アーティスト情報・外部サービスID管理
  • albums :アルバム情報・ジャケット・レビュー
  • tracks :トラック情報・メタデータ・再生履歴
  • playlists / playlist_tracks :プレイリスト・トラック紐付け
  • genres / track_genres :ジャンル管理
  • pinned_items :サイドバーのピン留め情報
  • tracks_fts :全文検索用仮想テーブル

ビルド・セットアップ手順

  • macOS 14以上 を用意
  • Xcodeインストール
  • ビルド用スクリプト(build-installer.sh)実行には以下が必要
    • xcpretty
    • create-dmg

ライセンス・クレジット

  • MITライセンス
  • Paul Hudson (Swiftチュートリアル提供者)、 Sindre Sorhus (create-dmg作者)、 Claude by Anthropic (共同プログラミング支援)

開発者からのメッセージ

  • ストリーミング主流時代におけるオフライン音楽プレーヤー不足 を解決するためのプロジェクト
  • 3ヶ月かけて開発、v1リリースに向けてα版をテスト・改善中
  • GitHubでのフィードバック・貢献を歓迎
  • 今後も機能追加・品質向上を継続予定

Hackerたちの意見

Spotifyに飽きてきたユーザーとしては、これは新鮮な風を感じるね。ただ、音楽を集めることから離れちゃったのが気になる。昔はCDをリッピングしたり、音楽をダウンロードしてライブラリを作ったりしてたけど、ストリーミングに移行してからはその習慣がなくなっちゃった。今の人たちはどうやって音楽を集めてるのかな?アーティストにちゃんと報酬を渡す方法ってある?

Bandcampが思い浮かぶね。でも、Bandcampにいないアーティストについてはちょっとわからないな。

BandcampとQobuzから買ってるよ(特にクラシックやBandcampにいないアーティストのために)。

「古いiTunes」みたいなプレーヤーを探してるなら、ここもおすすめだよ:https://swinsian.com/

Readmeには「モチベーション」のところでこのアプリが紹介されてるね。>「私は何年もかけて集めた音楽ファイルの大きなコレクションがあり、macOSで良いオフライン音楽プレーヤーが欲しかった。」Swinsianを使ってたけど(すごくいいアプリだよ!)、何年も更新されてないんだ。ストリーミングアプリにある機能も恋しかったから、Petrichorを作って、その欲求を満たしつつSwiftやmacOSアプリ開発も学んだんだ!

Windows/Linuxユーザーには、よりレトロなメディアプレーヤーとしてquodlibetが強くおすすめだよ:https://github.com/quodlibet/quodlibet

おすすめありがとう!今まで試した中で、これが一番の「昔のiTunes」プログラムだわ。しばらくこれを使うかも。特に、ネストしたルールでスマートリストが作れるのが気に入ってる。唯一足りないのはボリュームレベリングかな。

友達(音響エンジニア)がずっとVLCプレーヤーを音声再生に使ってるんだけど、俺も同じことしてる。利点は、音楽をファイルシステムで整理することを強制されることで、それが将来の他のシステムにもすごくうまく適応できるってこと。特別なプレイリストが欲しい?ファイルをコピーして、数字のプレフィックスを付けて名前を付ければいい。10年後に別のOSでそのプレイリストを開くこともできる。俺はフルアルバムを聴くことが多いから、これがいいやり方だと思ってる。

Swinsianは24.95ドルの価値が100%あるよ。オフラインで音楽を買うための良いシステムがあるのは本当にいいね。

俺のアプリも試してみてね:https://www.plastaq.com/minimoon

Petrichor、おめでとう!本当に素晴らしい作品だね!クリーンでモダンなUIが大好き。今はSwinsianを使ってるけど(多くの面でまだまだ良い)、Petrichorは新鮮な風を感じる。特にローカルライブラリを大事にしてる人にはね。これがiOSにも来ることを心から願ってるよ。ありがとう!

実装の手間や難しさを考慮する時間があれば、2つ提案があるよ。> P.S. 近いうちにHomebrewで公開する予定だよ。1. MacPortsでも公開を検討してほしい。2. m4bオーディオブックのサポートも考えてほしい(一般的なm4aとは異なるファイル拡張子だけど、チャプターもサポートしてる)。

Hacker Newsで議論の続きを見る