bandcampsyncで音楽を同期する - KoedoLUG 2026/06

>100 Views

June 13, 26

スライド概要

小江戸らぐ 2026/06 発表資料

profile-image

Geolonia / OSGeo.JP / Japan Unix Society / OpenStreetMap Foundation Japan

シェア

またはPlayer版

埋め込む »CMSなどでJSが使えない場合

ダウンロード

関連スライド

各ページのテキスト
1.

bandcampsync で音楽を同期する Bandcamp で買った音源をローカルに集約する Taro Matsuzawa (@smellman) OSGeo.JP/OSMFJ/jus/Geolonia Inc. 2026/06/13

2.

自己紹介 ● 松澤 太郎 (Taro Matsuzawa / @smellman) ● 一般社団法人 OpenStreetMap Foundation Japan (OSMFJ) 理事 ● 一般社団法人 OSGeo 財団 日本支部(OSGeo.JP) 理事 ● 日本 UNIX ユーザ会 副会長 ● 株式会社 Geolonia GIS エンジニア 小江戸らぐ 2026 年 6 月 2 / 26

3.

最近の話

4.

OLL Awards 受賞 ● OLL Awards を受賞しました。 ● 受賞記念講演: https://www.docswell.com/s/smellman/ZJW86J-2026-05-28oll-awards-2025 小江戸らぐ 2026 年 6 月 4 / 26

5.

国土地理院「3 次元地図可視化サイト」が試験公開 ● 国土地理院「3 次元地図可視化サイト」が試験公開されました ● Geolonia による告知: https://www.geolonia.com/archives/6803/ ● 僕が業務を担当しました。がんばったでー 小江戸らぐ 2026 年 6 月 5 / 26

6.

さて、本題。まずは背景

7.

Bandcamp とは ● アーティスト直販型の音楽配信プラットフォーム ● 売上の大半がアーティストに還元される仕組み ● DRM フリー でロスレス(FLAC/ALAC 等)を含む高音質配信 ● 一度購入すれば 何度でもダウンロード可能 ● インディーズ・電子音楽・同人音楽との相性が良い 小江戸らぐ 2026 年 6 月 7 / 26

8.

なぜローカルに同期したいのか ● Bandcamp のページから 毎回ポチポチ DL するのが面倒 ● 購入数が増えてくると、何を落として何を落としてないか分からなくなる ● 新しく Linux をセットアップしたので Linux でも音楽を聞きたい ● 配信サービスが消えてもローカルに音源が残る安心感 ●「買った音源は自分のもの」を物理的に担保したい 小江戸らぐ 2026 年 6 月 8 / 26

9.

公式機能だけだと辛い ● Bandcamp の購入履歴ページから 1 アルバムずつ手動ダウンロード ● フォーマットを選んで ZIP で降ってくる ● 解凍して、アーティスト/アルバム名のフォルダに振り分ける作業 ● 既に DL 済みかどうかは自分で覚えておく必要あり ● → 数百枚レベルになると現実的ではない 小江戸らぐ 2026 年 6 月 9 / 26

10.

bandcampsync

11.

bandcampsync ● GitHub: https://github.com/meeb/bandcampsync ● Python 製の CLI ツール(Docker イメージも公式提供) ● Bandcamp の 購入済みアイテムを丸ごとローカルに同期 ● 差分検出付きなので、新しく買ったものだけが落ちてくる ● 依存: beautifulsoup4 / curl-cffi ● ライセンス: AGPL-3.0 小江戸らぐ 2026 年 6 月 11 / 26

12.

動作の流れ 1. エクスポートしたセッションクッキーで認証 2. ローカルの同期先ディレクトリをスキャン 3. Bandcamp の コレクション(購入履歴) をインデックス化 4. 未ダウンロードのアイテムを抽出 5. ZIP をダウンロード → 解凍 → 所定のディレクトリに配置 小江戸らぐ 2026 年 6 月 12 / 26

13.

動作環境 ● CachyOS ● ArchLinux ベースのディストリビューション ● 先月紹介されてたものを早速導入 ● python-uv パッケージを導入 小江戸らぐ 2026 年 6 月 13 / 26

14.

インストール ● uv でインストール: mkdir test-bandcampsync cd test-bandcampsync uv init uv add bandcampsync 小江戸らぐ 2026 年 6 月 14 / 26

15.

認証 (cookies.txt)

16.

セッションクッキーの取得 ● bandcampsync は ブラウザのセッションクッキー で認証する ● 公式 API ではないので、ログイン後の Cookie をそのまま使う方式 1. ブラウザで bandcamp.com にログイン 2. 開発者ツール (F12) → ネットワークタブを開く 3. 任意のページのリクエストを選択 4. リクエストヘッダの Cookie 値をコピーして cookies.txt に保存 小江戸らぐ 2026 年 6 月 16 / 26

17.

cookies.txt の取り扱い ● このファイルは事実上のログイン情報そのもの ● 漏れるとアカウントを乗っ取られる ● chmod 600 cookies.txt などで権限を絞る ● クラウドストレージへの同期対象から外す ● 公式ドキュメントにも明示的に警告あり 小江戸らぐ 2026 年 6 月 17 / 26

18.

使い方

19.

基本コマンド ● 最小構成の実行例: mkdir tmp uv run bandcampsync -c cookies.txt -d /path/to/music -t tmp/ ● -c … cookies.txt のパス ● -d … 同期先ディレクトリ ● -t …temp directory (指定なしで/tmp) ● デフォルトは FLAC (ロスレス) で取得 ● 既に bandcamp_item_id.txt がある項目はスキップされる 小江戸らぐ 2026 年 6 月 19 / 26

20.

ダウンロードフォーマット ● --format で指定可能 ● 主な選択肢: ● flac (デフォルト・ロスレス) ● alac / aiff-lossless (Apple 系ロスレス) ● mp3-v0 (可変ビットレート) ● mp3-320 (高音質 MP3) ● aac-hi (Apple 系 AAC) 小江戸らぐ 2026 年 6 月 20 / 26

21.

便利なオプション ● --ignore … 特定アーティストをスキップ ● --ignore-file … スキップ対象をファイルで管理 ● --concurrency … 並列ダウンロード数(デフォルト 1) ● --notify-url … 完了時に外部 URL へ通知 (Webhook 等と組み合わせて Slack / Discord に通知できる) 小江戸らぐ 2026 年 6 月 21 / 26

22.

同期後のディレクトリ構造 /media/Artist Name/Album Name/ ├─ bandcamp_item_id.txt # 差分検知用 ├─ cover.jpg └─ 01 Track Name.flac ● アーティスト名 / アルバム名のフォルダに整理される ● bandcamp_item_id.txt が bandcamp 上の ID を保持 ● → 次回実行時に「これは既にある」と判定できる 小江戸らぐ 2026 年 6 月 22 / 26

23.

運用してみての所感

24.

メディアサーバとの連携 ● bandcampsync 側は「DL 済かどうか」しか気にしないので、 後段でフォルダを 動かしても壊れにくい設計 小江戸らぐ 2026 年 6 月 24 / 26

25.

ハマりやすいポイント ● WiFi によって接続が安定しないケースがある ● 時期によって極端に遅い時もある ● 一度全件落としてしまえば、以降は差分のみで軽い ● リリースによっては/tmp(tmpfs)の容量を越えてしまうので注意 ● flac はでかい 小江戸らぐ 2026 年 6 月 25 / 26

26.

まとめ ● Bandcamp の購入音源を 自動でローカル同期 できる CLI ツール ● 認証はセッションクッキー方式、cookies.txt の管理だけ要注意 ● FLAC などロスレスでまとめて取得可能 ●「買った音源は自分のもの」を運用で担保したい人におすすめ 小江戸らぐ 2026 年 6 月 26 / 26