foobar2000 component that checks installed third-party components for available updates and notifies the user. It does not auto-download, auto-install, or auto-replace anything — it only tells you an update exists and takes you to the release page.
foobar2000用コンポーネント。導入済みのサードパーティー製コンポーネントについて、 更新の有無をインターネット上で確認し、ユーザーへ通知する。DLLの自動ダウンロード・ 自動インストール・自動置換は行わない。更新の存在を知らせ、公開ページへ案内するところまでを担当する。
v2.3.0. Results are now sorted by status: components with an update available appear first, then errors, then "unable to compare", with already-current components at the bottom — so the items that need your attention aren't buried in a long list.
v2.3.0。結果一覧をstatus(状態)でソートするようにした: 更新ありのものが 最初に、続いてエラー、比較不能、最後に既に最新のもの、という順に並ぶ。 対応が必要な項目が長いリストの中に埋もれないようにするため。
English
-
Detect installed components (DLL name, display name, version) via the foobar2000 SDK
-
Register a component's page URL in Preferences → Tools → Component Update Checker → Manage Sources... — the site is detected automatically from the URL. Supported sites:
- GitHub, GitLab, Codeberg — Releases API, any repository
- marc2k3.github.io — site-specific page parser (this one site only)
- SourceForge — RSS feed, works for any project's files folder
- foobar.hyv.fi — site-specific page parser (this one site only)
or rely on the shared known-components registry for components that are already listed there
-
Fetch latest release info and compare versions (SemVer-aware, including pre-releases such as
1.0.0-beta); shows "unable to compare" instead of guessing when version formats don't match -
Manual check ("Check Third-Party Component Updates" in the Help menu, or "Check for Updates Now" in Preferences) opens the results window right away, showing a progress indicator while components are checked and switching to the results list once done; results are sorted with the most actionable ones first (updates available, then errors, then "unable to compare", then already-current), and each result links to its release page
-
Automatic check on startup (delayed ~20s, configurable interval of 1–30 days). By default only pops up when an update is found; this can be changed in Preferences to also show communication errors, or to always show a result regardless
-
Users can propose additions to the shared registry via a Suggest for Shared Registry... button, which opens a pre-filled pull request flow on GitHub — no account setup or API token needed
-
An Open Known-Component Registry... button in Preferences opens the shared registry repository directly in your browser, for browsing the full list of already-known components
-
Supports Windows dark mode, matching the rest of foobar2000's Preferences dialog
-
All settings live in Preferences → Tools → Component Update Checker
日本語
-
foobar2000 SDK経由で導入済みコンポーネントを検出(DLL名・表示名・バージョン)
-
**Preferences → Tools → Component Update Checker → Manage Sources...**で、公開ページのURLを貼り付けるだけでコンポーネントごとに 登録できる(サイトはURLから自動判定される)。対応サイト:
- GitHub・GitLab・Codeberg—Releases API、任意のリポジトリに対応
- marc2k3.github.io—このサイト専用のページパーサー(このサイト限定)
- SourceForge—RSSフィードベース、どのプロジェクトのファイルフォルダにも対応
- foobar.hyv.fi—このサイト専用のページパーサー(このサイト限定)
もしくは、既に 共有の既知コンポーネントDBに 載っているコンポーネントなら、登録不要でそのまま確認できる
-
最新リリース情報を取得しバージョン比較(SemVer準拠、
1.0.0-betaのような prerelease表記にも対応)。表記が読み取れない場合は誤判定せず「比較不能」と表示 -
手動確認(Helpメニューの「Check Third-Party Component Updates」、または Preferencesの「Check for Updates Now」)。結果ウィンドウがその場で開き、 検査中は進捗表示、完了後は結果一覧に切り替わる。結果は対応が必要な順 (更新あり→エラー→比較不能→最新)にソートされ、各リリースページへの リンクをクリックで開ける
-
起動時の自動確認(約20秒遅延実行、間隔は1〜30日で設定可能)。既定では 更新が見つかったときだけポップアップするが、Preferencesで通信エラーも 表示する設定や、常に結果を表示する設定に変更できる
-
**Suggest for Shared Registry...**ボタンから、共有DBへの追加をユーザー自身が 提案できる(GitHub上でPull Requestの下書きが自動的に開かれる。アカウント 設定やAPIトークンは不要)
-
Preferencesの**Open Known-Component Registry...**ボタンから、共有DBの リポジトリをブラウザで直接開ける。既に登録済みのコンポーネント一覧を ブラウズしたいときに使う
-
Windowsのダークモードに対応し、foobar2000本体のPreferencesダイアログと 見た目が揃う
-
設定はPreferences → Tools → Component Update Checkerに集約
English
- Auto-download, auto-install, auto-replace of component DLLs
- Verifying the safety/quality of any component
- Sending library contents, playback history, or playlists anywhere
- Component identity is based on DLL name (not GUID); the foobar2000 SDK's
componentversioninterface does not expose a reliable per-component GUID - Site-specific page parsers (currently marc2k3.github.io and foobar.hyv.fi) are inherently fragile — if either site's page structure changes, checking fails with an explicit error rather than a wrong result. SourceForge, by contrast, is supported generically via its RSS feed and is not tied to any one project
日本語
- コンポーネントDLLの自動ダウンロード・自動インストール・自動置換
- コンポーネントの安全性・品質の保証
- 音楽ライブラリ・再生履歴・プレイリスト等の外部送信
- コンポーネントの識別はDLL名ベース(GUIDではない)。foobar2000 SDKの
componentversionインターフェースからは、信頼できるコンポーネント単位の GUIDが取得できないため - サイト固有のページパーサー(現状marc2k3.github.ioとfoobar.hyv.fi)は 構造上壊れやすい—対象サイトのページ構造が変わった場合、誤った結果を 返すのではなく明示的なエラーとして確認失敗を表示する。一方SourceForge はRSSフィード経由の汎用対応であり、特定のプロジェクトに依存しない
English
Components not registered locally are looked up in a shared, static JSON
file maintained at
foo_component_update_checker-registry
(fetched anonymously from raw.githubusercontent.com, no API key or server
involved). Locally registered sources (via Manage Sources...)
always take priority over this shared registry. The cache refreshes at most
once every 24 hours; failures fall back silently to the last known-good
cache.
Contributions to the shared registry are welcome — see that repository's README for details, or use the Suggest for Shared Registry... button inside the component.
日本語
ローカルに登録されていないコンポーネントは、
foo_component_update_checker-registry
で管理されている共有の静的JSONファイルを参照する(raw.githubusercontent.comから
匿名取得。APIキーやサーバーは不要)。**Manage Sources...**でローカルに
登録した内容は、常にこの共有DBより優先される。キャッシュは最大24時間に1回まで
更新を試み、失敗時は直近の取得済みキャッシュへ静かにフォールバックする。
共有DBへの投稿は歓迎している。詳細はそちらのリポジトリのREADMEを参照するか、 コンポーネント内の**Suggest for Shared Registry...**ボタンを使うこと。
English
This component connects to the internet on its own (to check for updates). Specifically:
api.github.com— to check installed components' GitHub Releasesgitlab.com— to check installed components' GitLab Releasescodeberg.org— to check installed components' Codeberg Releasesmarc2k3.github.io— to check installed components hosted on that sitesourceforge.net— to check installed components' SourceForge project file feedsfoobar.hyv.fi— to check installed components hosted on that siteraw.githubusercontent.com— to fetch the shared known-components registry
No personal data, library contents, playback history, or file paths are ever sent. Network usage is minimal (small periodic checks), but it does happen over your own connection — this is disclosed here so there are no surprises.
日本語
このコンポーネントは、更新確認のために自発的にインターネットへ接続する。 具体的には:
api.github.com—導入済みコンポーネントのGitHub Releasesを確認するためgitlab.com—導入済みコンポーネントのGitLab Releasesを確認するためcodeberg.org—導入済みコンポーネントのCodeberg Releasesを確認するためmarc2k3.github.io—導入済みコンポーネントのうち、当該サイトで配布されて いるものを確認するためsourceforge.net—導入済みコンポーネントのSourceForgeプロジェクトの ファイルフィードを確認するためfoobar.hyv.fi—導入済みコンポーネントのうち、当該サイトで配布されて いるものを確認するためraw.githubusercontent.com—共有の 既知コンポーネントDBを取得するため
個人情報・音楽ライブラリの内容・再生履歴・ファイルパス等は一切送信しない。 通信量はごくわずか(小さな定期確認のみ)だが、ユーザー自身の回線を使って 発生するため、事前にここで明示しておく。
- foobar2000 v2.x, 32-bit or 64-bit
- Windows 10/11
English
- Clone this repository.
- Place the
SDK-2025-03-07(foobar2000 SDK + Columns UI SDK + pfc/shared) andWTL10_01_Releasefolders alongsidefoo_component_update_checker.vcxproj. These are not committed to this repository — obtain them separately. - Open
foo_component_update_checker.slnxin Visual Studio 2022 and build theRelease|x64configuration (orDebug|x64for development).Release|Win32/Debug|Win32are also supported, for building a 32-bit version of the component.
The solution builds the SDK helper libraries (pfc, foobar2000_SDK,
foobar2000_component_client, shared, columns_ui_sdk) as build
dependencies before linking the main component.
This project also bundles nlohmann/json
(single header, third_party/nlohmann/json.hpp, MIT License) for parsing
GitHub API responses.
日本語
- このリポジトリをclone
SDK-2025-03-07(foobar2000 SDK / Columns UI SDK / pfc / shared)とWTL10_01_Releaseフォルダをfoo_component_update_checker.vcxprojと同じ階層に配置する。 これらはリポジトリにはコミットしていないため、別途入手すること。- Visual Studio 2022で
foo_component_update_checker.slnxを開き、Release|x64構成でビルドする(開発時はDebug|x64)。 32bit版をビルドする場合はRelease|Win32/Debug|Win32にも対応している。
ソリューションは、本体をリンクする前にSDK側のヘルパーライブラリ
(pfc, foobar2000_SDK, foobar2000_component_client, shared, columns_ui_sdk)
をビルド依存関係としてビルドする。
GitHub APIのレスポンス解析にはnlohmann/json
(単一ヘッダー、third_party/nlohmann/json.hpp、MITライセンス)を同梱している。
English
- Open Preferences → Tools → Component Update Checker.
- Click Check for Updates Now — components already listed in the shared registry will be checked automatically, no registration needed.
- For anything not covered, click Manage Sources... and paste the
component's page URL to associate it. Examples:
https://github.com/owner/repohttps://gitlab.com/owner/repohttps://codeberg.org/owner/repohttps://marc2k3.github.io/component/xxx/https://sourceforge.net/projects/<project>/files/<folder>/https://foobar.hyv.fi/?view=<component>
- Adjust Automatically check for updates, Check interval (days), and the notification level as needed.
- Curious what's already in the shared registry? Click Open Known-Component Registry... to browse it on GitHub.
日本語
- Preferences → Tools → Component Update Checkerを開く
- Check for Updates Nowをクリックする — 共有DBに既に載っている コンポーネントは、登録不要でそのまま確認される
- カバーされていないコンポーネントは、**Manage Sources...**から
公開ページのURLを貼り付けて紐付ける。例:
https://github.com/owner/repohttps://gitlab.com/owner/repohttps://codeberg.org/owner/repohttps://marc2k3.github.io/component/xxx/https://sourceforge.net/projects/<project>/files/<folder>/https://foobar.hyv.fi/?view=<component>
- 必要に応じてAutomatically check for updates・Check interval (days)・通知レベルを調整する
- 共有DBに何が登録されているか気になったら、**Open Known-Component Registry...**をクリックしてGitHub上でブラウズできる
See docs/dev_log.md for development history, design
decisions, and rationale behind them.
開発の経緯・設計判断とその理由についてはdocs/dev_log.mdを参照。
MIT License. See LICENSE for the full text.
MITライセンス。全文はLICENSEを参照。