Skip to content
Synchronize user's favorites tracks from soundcloud
Python
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
scripts
ssyncer
tests/ssyncer
.gitignore
.travis.yml
CHANGELOG.org Bump version Apr 20, 2017
COPYING
README.org
setup.cfg
setup.py
tests_requirements.txt
tox.ini

README.org

Soundcloud Syncer | https://img.shields.io/pypi/v/soundcloud-syncer.svg http://secure.travis-ci.org/Sliim/soundcloud-syncer.png?branch=master

Soundcloud-syncer is a tool to synchronize soundcloud user’s favorites and tracks locally.

Requirements

Python version

  • Python 3.x

Packages dependencies

  • stagger (for id3 tag support)
  • pydub (for mp3 conversion)
  • python-dateutil
  • python-magic

To run tests you need some packages:

  • tox
  • mock
  • nose
  • pep8
  • coverage (optional)

Installation

The recommended way to install soundcloud-syncer is from Pypi.

Pypi

pip install soundcloud-syncer
sc-syncer --help

Github

git clone https://github.com/Sliim/soundcloud-syncer.git
cd soundcloud-syncer
scripts/sc-syncer --help

Basic usage

  • Download user’s likes:
sc-syncer -u USER_TO_SYNC -o OUTPUT_DIRECTORY
  • Download user’s tracks:
sc-syncer -u USER_TO_SYNC -o OUTPUT_DIRECTORY -t
  • Download user’s playlists:
sc-syncer -u USER_TO_SYNC -o OUTPUT_DIRECTORY -p
  • You can download tracks recursively:
sc-syncer -u USER_TO_SYNC -o OUTPUT_DIRECTORY -t -r
  • To set offset and limit for tracks list:
sc-syncer -u USER_TO_SYNC -o OUTPUT_DIRECTORY -L LIMIT -O OFFSET

/!\ Limit can’t be greater than 200.

Ignoring tracks

You can ignore some tracks you don’t want to sync locally.

To do this create a file in OUTPUT_DIRECTORY named .ignore. Each track in this file will be ignored.

  • Example:

To ignore https://soundcloud.com/trapmusic/vexed-goodbye-by-j-nitrous add in .ignore file:

trapmusic/vexed-goodbye-by-j-nitrous

Tag support

soundcloud-syncer support id3 tag from version 0.2.

It writes ID3 tag after each downloaded mp3 file. You can disable this feature with --without-tag option:

sc-syncer -u USER_TO_SYNC -o OUTPUT_DIRECTORY --without-tag

You can re-write mp3 tag with sc-tagger tool. This tool expect a file or directory as first argument.

File’s name format must be “{id}-{permalink}.mp3” to be tagged. Track ID is necessary to retrieve data from soundcloud’s API.

  • for a file, it will write id3 tag if it’s a mp3 file.
sc-tagger /path/to/1337-file.mp3

You can specify track ID for a single file:

sc-tagger /path/to/file.mp3 --id 1337
  • for a directory, sc-tagger find all mp3 file and tags them (–id option is not supported).
sc-tagger /path/to/directory/

It may be useful to update tracks downloaded with soundcloud-syncer 0.1!

MP3 conversion

You can convert non-mp3 files with `–convert` option. This feature requires pydub package that depends to `ffmpeg` or `avconv`. See pydub’s readme for more informations.

To convert non-mp3 files after each download:

sc-syncer -u USER_TO_SYNC -o OUTPUT_DIRECTORY --convert

This will create a backup directory at `OUTPUT_DIRECTORY/backups/` where will be placed original files before conversion, nothing is deleted.

Features

  • Download user’s favorites / likes tracks list.
  • Download user’s tracks list.
  • Download user’s playlists.
  • Possibility to set offset and limit for tracks list.
  • Auto find client_id when not passed to sync script.
  • Possibility to ignore some tracks to sync.
  • Recursive download.
  • ID3 Tag support.
  • MP3 conversion.

License

See COPYING file

You can’t perform that action at this time.