soundcloud-sync
Version:
Sync your SoundCloud likes to local files
95 lines (71 loc) • 3.08 kB
Markdown
# SoundCloud Sync
[](https://github.com/realies/soundcloud-sync/commits/main)
[](https://github.com/realies/soundcloud-sync/actions)
[](https://github.com/realies/soundcloud-sync/actions/workflows/codeql-analysis.yml)
[](https://www.npmjs.com/package/soundcloud-sync)
[](https://www.npmjs.com/package/soundcloud-sync)
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
```bash
# 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](https://github.com/realies/soundcloud-sync/releases) for:
- Linux (x64, ARM64)
- macOS (x64, ARM64/Apple Silicon)
- Windows (x64)
### Library Usage
```bash
# Install in your project
npm install soundcloud-sync
# or
yarn add soundcloud-sync
```
```typescript
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
- [API Reference](API.md)
## Releases
Published automatically to:
- [npm](https://www.npmjs.com/package/soundcloud-sync)
- [GitHub Releases](https://github.com/realies/soundcloud-sync/releases) (pre-built binaries)