Этот скрипт [1] может скачать музыку с популярного сервиса SoundCloud, и установить в загруженном файле тег id3tag. Скрипт благодаря Python кроссплатформенный, и совместим с Windows, OS X, Linux.
Системные требования: python3, ffmpeg.
Что умеет скрипт:
● Автоматическое определение типа предоставленной ссылки ● Загрузка всех песен пользователя ● Загрузка всех песен и репост от имени пользователя ● Загрузка всех песен из одного плейлиста ● Загрузка всех песен из всех плейлистов пользователя ● Загрузка всех песен из favorites пользователя ● Загрузка только новых треков из списка (playlist, favorites, и т. д.) ● Синхронизация плейлиста ● Установка тегов с mutagen (Title / Artist / Album / Artwork) ● Создание файлов плейлиста при загрузке playlist
[Инструкции по установке]
Перед установкой не забудьте установить утилиту ffmpeg [2] и прописать до неё путь в переменной окружения PATH.
Установка с помощью PIP. Запустите следующие команды:
● Найдите ваш токен OAuth, посетив SoundCloud после логина, просматривая любые запросы браузеров через SoundCloud API. Токен будет находиться под заголовком Authorization в любом из этих запросов. ● Поместите токен OAuth в файл файл конфигурации (где он находится, см. ниже).
Эта установка вам понадобится, чтобы можно было использовать опцию me. Если у вас есть учетная запись GO+, то вы сможете загружать музыку с качеством 256 kbps AAC, которая доступна только через GO+.
-h --help Показать этот список подсказок по опциям
--version Показать версию
-l [url] Ссылка URL может быть track/playlist/user
-n [maxtracks] Загрузить n последних треков плейлиста по дате создания
-s Загрузить stream пользователя (требуется токен, см. выше
"Аутентификация")
-a Загрузить все треки пользователя (включая репосты)
-t Загрузить все, что выгрузил пользователь (без репостов)
-f Загрузить все из favorites пользователя
-C Загрузить все, что пользователь прокомментировал
-p Загрузить все playlists пользователя
-r Загрузить все reposts пользователя
-c Продолжить, если загружаемый файл уже существует
--force-metadata Это установит metadata уже загруженных треков
-o [offset] Начать с указанного смещения offset
--addtimestamp Добавить к имени файла трека метку времени создания трека,
которая позволяет сделать хронологическую сортировку
--addtofile Добавить artist к имени файла, если этого нет
--debug Установить уровень лога DEBUG
--download-archive [file] Отслеживать идентификаторы track ID в файле архива
и пропускать уже загруженные файлы
--error Установить уровень лога ERROR
--extract-artist Установить тег artist из title вместо username
--hide-progress Скрыть указатель прогресса wget
--hidewarnings Скрыть предупреждения (используйте с осторожностью)
--max-size [max-size] Пропускать треки, у которых размер больше указанного (k/m/g)
--min-size [min-size] Пропускать треки, у которых размер меньше указанного (k/m/g)
--no-playlist-folder Загружать треки плейлиста в основную директорию вместо
создания подпапки плейлиста
--onlymp3 Загружать только streamable mp3 файл, даже если у трека
признак Downloadable file
--path [path] Использовать указанный путь для загружаемых файлов
--remove Удалить любые файлы из выполнения, которые не загружены
--sync [file] Сравнить файл архива с playlist, и загрузить/удалить любые
измененные треки
--flac Преобразовать оригинальные файлы в формат .flac
--no-album-tag На некоторых треках плейера есть та же самая обложка (cover
art). Если это тот же альбом, то предотвращается её получение
--original-art Загрузка оригинальной обложки (cover art)
--original-name Не менять имя оригинальных загруженных файлов
--no-original Не загружать оригинальный файл; только mp3 или m4a
--only-original Загружать только песни с оригинальным доступным файлом
--name-format [format] Укажите формат имени загружаемого файла
--playlist-name-format [format] Указать формат имени загружаемого файла, если он был загружен
как часть плейлиста
--client-id [id] Указать используемый client_id
--auth-token [token] Указать используемый токен аутентификации
--overwrite Перезаписать файл, если он уже существует
--strict-playlist Прервать загрузку плейлиста, если произошел сбой загрузки
в одном из треков