Skip to content

☁️ Synchronise SoundCloud User Likes With a Local Folder

License

Notifications You must be signed in to change notification settings

realies/soundcloud-sync

Repository files navigation

SoundCloud Sync

GitHub Last Commit GitHub Workflow Status CodeQL NPM Version NPM Downloads

A library and CLI tool to sync your SoundCloud likes to local files.

Features

  • Download liked tracks from any SoundCloud profile
  • Automatic metadata tagging (title, artist, artwork) using ID3v2
  • Preserves like dates as file modification times
  • Verify and update timestamps of existing files
  • Supports incremental syncing (only downloads new likes)
  • Can be used as a library in other projects
  • Minimal dependencies with pure TypeScript implementation
  • Cross-platform support with pre-built binaries

Quick Start

CLI Usage

# Install globally
npm install -g soundcloud-sync

# Download your likes
soundcloud-sync -u your-username

# Download with limit
soundcloud-sync -u your-username --limit 100

# Download with limit and custom folder
soundcloud-sync -u your-username --limit 100 --folder ./my-music

# Download and verify timestamps
soundcloud-sync -u your-username --limit 100 --folder ./my-music --verify-timestamps

# Only verify timestamps of existing files
soundcloud-sync -u your-username --limit 100 --folder ./my-music --verify-timestamps --no-download

Pre-built binaries are also available from the releases page for:

  • Linux (x64, ARM64)
  • macOS (x64, ARM64/Apple Silicon)
  • Windows (x64)

Library Usage

# Install in your project
npm install soundcloud-sync
# or
yarn add soundcloud-sync
import { soundCloudSync } from 'soundcloud-sync';

// Download latest likes
await soundCloudSync({
  username: 'your-username',
  limit: 100,
  folder: './my-music'
});

// Only verify timestamps of existing files
await soundCloudSync({
  username: 'your-username',
  limit: 100,
  verifyTimestamps: true,
  noDownload: true
});

// Verify timestamps and download new tracks
await soundCloudSync({
  username: 'your-username',
  limit: 100,
  verifyTimestamps: true
});

Documentation

Releases

Published automatically to: