2026-08-09 12:06:46 +03:00
2026-08-09 12:06:46 +03:00
2026-08-09 12:06:46 +03:00
2026-08-09 12:06:46 +03:00
2026-08-09 12:06:46 +03:00
2026-08-09 12:06:46 +03:00
2026-08-09 12:06:46 +03:00
2026-08-09 12:06:46 +03:00

Qobuz Streamrip Tools

Набор утилит для Windows для автоматизации работы со Streamrip и загрузками из Qobuz.

Проект объединяет:

  • программу QobuzWatchdog, которая последовательно обрабатывает список ссылок через Streamrip и перезапускает зависший процесс;
  • очистку базы истории Streamrip;
  • приведение скачанных FLAC-файлов к CD-качеству;
  • группировку нескольких альбомов одного исполнителя в общую папку.

Используйте проект только для контента, который вы имеете право скачивать и обрабатывать, и в соответствии с условиями используемых сервисов.

Структура проекта

qobuz-streamrip-tools/
├── QobuzWatchdog/
│   ├── Properties/
│   ├── App.config
│   ├── Program.cs
│   └── QobuzWatchdog.csproj
│
├── scripts/
│   ├── Clear-StreamripDb.bat
│   ├── Convert-FlacToCD.ps1
│   └── GroupAlbumsByArtist.ps1
│
├── tools/
│   └── .gitkeep
│
├── downloads/
│   └── .gitkeep
│
├── data/
│   └── urls.txt
│
├── QobuzWatchdog.sln
├── README.md
├── LICENSE
└── .gitignore

Общий рабочий процесс

data/urls.txt
      ↓
QobuzWatchdog
      ↓
Streamrip
      ↓
downloads/
      ↓
Convert-FlacToCD.ps1
      ↓
GroupAlbumsByArtist.ps1

Все загрузки Streamrip направляются в папку downloads в корне проекта.

QobuzWatchdog при каждом запуске проверяет %APPDATA%\streamrip\config.toml и устанавливает параметр downloads.folder в путь к локальной папке downloads.

Скачать все зависимости:

Скачать (.zip)

Основная зависимость — Streamrip

Streamrip:

https://github.com/nathom/streamrip

Для актуальной версии Streamrip необходим Python 3.10 или новее и pip.

Установка:

pip3 install streamrip --upgrade

Проверка:

rip

Перед первым использованием необходимо настроить Streamrip и авторизацию Qobuz.

Для Qobuz требуется подходящая подписка, позволяющая получать соответствующее качество аудио.

Где ищется Streamrip

QobuzWatchdog ищет rip.exe в следующем порядке:

  1. tools\rip.exe;
  2. системная переменная PATH.

Если Streamrip установлен через pip, обычно достаточно, чтобы каталог Python Scripts был добавлен в PATH.

FFmpeg

Для Convert-FlacToCD.ps1 необходимы:

ffmpeg.exe
ffprobe.exe

Сборка FFmpeg для Windows:

https://www.gyan.dev/ffmpeg/builds/ffmpeg-release-full.7z

После распаковки файлы находятся в каталоге bin.

Их можно положить непосредственно в:

tools/

Скрипт ищет ffmpeg.exe и ffprobe.exe:

  1. в tools;
  2. затем в системном PATH.

Зависимости по компонентам

Компонент Streamrip FFmpeg FFprobe PowerShell .NET Framework
QobuzWatchdog ✓ — — — 4.7.2
Clear-StreamripDb.bat ✓ — — — —
Convert-FlacToCD.ps1 — ✓ ✓ 5.1+ —
GroupAlbumsByArtist.ps1 — — — 5.1+ —

QobuzWatchdog

QobuzWatchdog читает ссылки из:

data/urls.txt

Каждая ссылка должна находиться на отдельной строке.

Пример:

https://www.qobuz.com/...
https://open.qobuz.com/...

Строки, начинающиеся с #, игнорируются.

Программа хранит состояние в:

data/completed_urls.txt
data/failed_urls.txt

Эти файлы создаются автоматически и не добавляются в Git.

Что делает Watchdog

Для каждой ссылки программа:

  1. запускает rip --no-progress --verbose url "<URL>";
  2. отслеживает вывод процесса;
  3. если Streamrip долго не выводит ничего, завершает дерево процесса;
  4. повторяет попытку;
  5. сохраняет успешно обработанные ссылки;
  6. повторяет незавершённые ссылки в следующих проходах.

Текущие параметры находятся в Program.cs:

private const int MaxRunsPerUrl = 10;
private const int MaxRounds = 20;
private const int IdleLimitSeconds = 60;
private const int RestartDelaySeconds = 3;

Сборка QobuzWatchdog

Проект рассчитан на:

.NET Framework 4.7.2

Откройте:

QobuzWatchdog.sln

в Visual Studio и соберите конфигурацию Release.

Каталоги .vs, bin и obj исключены из Git.

Очистка базы Streamrip

Запустите:

scripts\Clear-StreamripDb.bat

Скрипт удаляет:

%APPDATA%\streamrip\downloads.db
%APPDATA%\streamrip\failed_downloads.db

Это сбрасывает историю скачанных и неудачно обработанных элементов Streamrip.

Конвертация FLAC в CD-качество

Запустите:

.\scripts\Convert-FlacToCD.ps1

Скрипт автоматически обрабатывает:

downloads/

Целевые параметры:

FLAC
16 бит
44,1 кГц
2 канала

Скрипт:

  • рекурсивно ищет FLAC;
  • пропускает уже подходящие файлы;
  • сохраняет метаданные и встроенные изображения;
  • создаёт временный файл;
  • проверяет результат через FFprobe;
  • только после успешной проверки заменяет исходник;
  • при ошибке пытается восстановить исходный файл.

Группировка альбомов по исполнителям

Запустите:

.\scripts\GroupAlbumsByArtist.ps1

Скрипт работает с папкой downloads.

Он ожидает названия альбомов в формате:

Исполнитель - Альбом

Если у одного исполнителя найдено два или больше альбомов:

downloads/
├── Исполнитель/
│   ├── Исполнитель - Альбом 1/
│   └── Исполнитель - Альбом 2/

Если альбом только один, его папка остаётся на первом уровне.

Папка downloads

Вся музыка находится в:

downloads/

Содержимое этой папки исключено из Git:

downloads/*
!downloads/.gitkeep

Папка tools

В tools можно положить локальные зависимости:

rip.exe
ffmpeg.exe
ffprobe.exe

Бинарные файлы из tools не добавляются в Git.

PowerShell

Скрипты рассчитаны на Windows PowerShell 5.1 или новее.

Если Windows блокирует запуск локальных .ps1, проверьте текущую политику:

Get-ExecutionPolicy

При необходимости для текущего пользователя можно использовать:

Set-ExecutionPolicy -Scope CurrentUser RemoteSigned

Меняйте политику выполнения только если понимаете последствия этой настройки.

Лицензия

Исходный код этого репозитория распространяется по лицензии MIT.

Streamrip и FFmpeg являются отдельными проектами и распространяются на условиях собственных лицензий.

S
Description
Набор утилит для Windows для автоматизации работы со Streamrip и загрузками из Qobuz.
Readme MIT
45 KiB
Languages
C# 68.7%
PowerShell 29.6%
Batchfile 1.7%