В современном Life-as-a-Service мире, где всё чудесно, но ничего нашего почти не осталось, мои убеждения касательно цифрового контента выглядят малость старомодными, если не сказать архаичными: если копии цифрового файла без DRM на локальном хранилище нет, то, как я считаю, эта информация мне не принадлежит.

Однако, новую музыку покупать нужно. Доверия к сервисам по аренде музыки для прослушивания у меня нет, так что из достаточно этичных сервисов остается Bandcamp, позволяющий после покупки альбома загрузить его копию локально, будь то flac, wav или mp3.

Правда, есть небольшой нюанс: с ростом коллекции к двух, а то и трёхзначным числам выгрузить все альбомы вручную — задача нетривиальная и рутинная. К счастью, добрые люди уже написали готовый инструмент для сего.

Bandcamp collection downloader — небольшая утилита для загрузки всей коллекции локально. После клонирования репозитория её нужно собрать с исходного кода gradle’ом. На всякий случай — есть зеркало кода.

Если в системе установлен Firefox, то утилита умеет самостоятельно вытаскивать cookie с браузера для логина. Если же основной браузер Chrome — придётся выгрузить печеньки bandcamp в правильном формате:

[
    {
        "Name raw": "client_id",
        "Content raw": "......."
    },
    {
        "Name raw": "identity",
        "Content raw": "......."
    },
    {
        "Name raw": "session",
        "Content raw": "......."
    }
]

С подготовленными печеньками выгрузка всей коллекции становится тривиальной:

java -jar bandcamp-collection-downloader.jar \
    --cookies-file=cookies.json \
    --retries=10 \
    --audio-format=flac \
    --download-folder=/home/yourName/Music \
    yourBandcampName

Берегите свою музыку :)