Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/Sliim/soundcloud-syncer

Synchronize user's favorites tracks from soundcloud
https://github.com/Sliim/soundcloud-syncer

music python soundcloud soundcloud-music-downloader

Last synced: 27 days ago
JSON representation

Synchronize user's favorites tracks from soundcloud

Awesome Lists containing this project

README

        

* Soundcloud Syncer | [[https://pypi.python.org/pypi/soundcloud-syncer][https://img.shields.io/pypi/v/soundcloud-syncer.svg]] [[http://travis-ci.org/Sliim/soundcloud-syncer][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
#+BEGIN_SRC shell
pip install soundcloud-syncer
sc-syncer --help
#+END_SRC
*** Github
#+BEGIN_SRC shell
git clone https://github.com/Sliim/soundcloud-syncer.git
cd soundcloud-syncer
scripts/sc-syncer --help
#+END_SRC
** Basic usage
- Download user's likes:
#+BEGIN_SRC shell
sc-syncer -u USER_TO_SYNC -o OUTPUT_DIRECTORY
#+END_SRC

- Download user's tracks:
#+BEGIN_SRC shell
sc-syncer -u USER_TO_SYNC -o OUTPUT_DIRECTORY -t
#+END_SRC

- Download user's playlists:
#+BEGIN_SRC shell
sc-syncer -u USER_TO_SYNC -o OUTPUT_DIRECTORY -p
#+END_SRC

- You can download tracks recursively:
#+BEGIN_SRC shell
sc-syncer -u USER_TO_SYNC -o OUTPUT_DIRECTORY -t -r
#+END_SRC

- To set offset and limit for tracks list:
#+BEGIN_SRC shell
sc-syncer -u USER_TO_SYNC -o OUTPUT_DIRECTORY -L LIMIT -O OFFSET
#+END_SRC
*/!\ 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:
#+BEGIN_SRC txt
trapmusic/vexed-goodbye-by-j-nitrous
#+END_SRC
** 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:
#+BEGIN_SRC shell
sc-syncer -u USER_TO_SYNC -o OUTPUT_DIRECTORY --without-tag
#+END_SRC

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.
#+BEGIN_SRC shell
sc-tagger /path/to/1337-file.mp3
#+END_SRC
You can specify track ID for a single file:
#+BEGIN_SRC shell
sc-tagger /path/to/file.mp3 --id 1337
#+END_SRC
- for a directory, ~sc-tagger~ find all mp3 file and tags them (--id option is not supported).
#+BEGIN_SRC shell
sc-tagger /path/to/directory/
#+END_SRC

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 [[https://pypi.python.org/pypi/pydub][pydub]] package that depends to `ffmpeg` or `avconv`. See pydub's readme for more informations.

To convert non-mp3 files after each download:
#+BEGIN_SRC shell
sc-syncer -u USER_TO_SYNC -o OUTPUT_DIRECTORY --convert
#+END_SRC

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