---
title: bandcampsyncで音楽を同期する - KoedoLUG 2026/06
tags:  #koedolug #python  
author: [Taro Matsuzawa aka. btm](https://image.docswell.com/user/smellman)
site: [Docswell](https://www.docswell.com/)
thumbnail: https://bcdn.docswell.com/page/LJ1Y11MXEG.jpg?width=480
description: 小江戸らぐ 2026/06 発表資料
published: June 13, 26
canonical: https://image.docswell.com/s/smellman/Z9NM21-2026-06-13-koedolug-bandcampsync
---
# Page. 1

![Page Image](https://bcdn.docswell.com/page/LJ1Y11MXEG.jpg)

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


# Page. 2

![Page Image](https://bcdn.docswell.com/page/GJWG883K72.jpg)

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


# Page. 3

![Page Image](https://bcdn.docswell.com/page/4EZL88VN73.jpg)

最近の話


# Page. 4

![Page Image](https://bcdn.docswell.com/page/Y76WPP597V.jpg)

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


# Page. 5

![Page Image](https://bcdn.docswell.com/page/G75MKKYD74.jpg)

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


# Page. 6

![Page Image](https://bcdn.docswell.com/page/9J29WWYMER.jpg)

さて、本題。まずは背景


# Page. 7

![Page Image](https://bcdn.docswell.com/page/DEY4LLGPJM.jpg)

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


# Page. 8

![Page Image](https://bcdn.docswell.com/page/VJNY44GM78.jpg)

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


# Page. 9

![Page Image](https://bcdn.docswell.com/page/YE9PQQWWJ3.jpg)

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


# Page. 10

![Page Image](https://bcdn.docswell.com/page/GE8DGGNRED.jpg)

bandcampsync


# Page. 11

![Page Image](https://bcdn.docswell.com/page/LELMGGP27R.jpg)

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


# Page. 12

![Page Image](https://bcdn.docswell.com/page/4JMYQQ49JW.jpg)

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


# Page. 13

![Page Image](https://bcdn.docswell.com/page/PJR988W979.jpg)

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


# Page. 14

![Page Image](https://bcdn.docswell.com/page/PEXQ88P3JX.jpg)

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


# Page. 15

![Page Image](https://bcdn.docswell.com/page/3EK9KKDNED.jpg)

認証 (cookies.txt)


# Page. 16

![Page Image](https://bcdn.docswell.com/page/L73WZZRZ75.jpg)

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


# Page. 17

![Page Image](https://bcdn.docswell.com/page/87DKRRY4JG.jpg)

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


# Page. 18

![Page Image](https://bcdn.docswell.com/page/VJPKWW6VE8.jpg)

使い方


# Page. 19

![Page Image](https://bcdn.docswell.com/page/2EVV883REQ.jpg)

基本コマンド
● 最小構成の実行例:
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


# Page. 20

![Page Image](https://bcdn.docswell.com/page/57GL5536EL.jpg)

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


# Page. 21

![Page Image](https://bcdn.docswell.com/page/4EQYZZ52JP.jpg)

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


# Page. 22

![Page Image](https://bcdn.docswell.com/page/KJ4W339P71.jpg)

同期後のディレクトリ構造
/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


# Page. 23

![Page Image](https://bcdn.docswell.com/page/LE1Y11KX7G.jpg)

運用してみての所感


# Page. 24

![Page Image](https://bcdn.docswell.com/page/GEWG88DKJ2.jpg)

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


# Page. 25

![Page Image](https://bcdn.docswell.com/page/47ZL88GNJ3.jpg)

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


# Page. 26

![Page Image](https://bcdn.docswell.com/page/YJ6WPPY9JV.jpg)

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


