Skip to content

Cyan903/Soundcloud-yt

Repository files navigation

Soundcloud-yt

package-version last-commit repo-size

Soundcloud-yt is a simple cli that will upload Soundcloud songs to YouTube. Uses ffmpeg to render the video. Video uploads are private by default, this is to prevent copyright claims.

homepage

Usage

Upload a song:

$ pnpm start upload https://soundcloud.com/example_artist/example_song
$ pnpm start auth # run authorize process
$ pnpm start clean # cleanup uploaded files
$ pnpm start help # command reference

Why?

Many people including myself use YouTube as their main source for listening to music. However, there is a huge selection of music that only exists on Soundcloud. It gets tiresome to switch between the two, so this works as a simple solution.

With this, I can keep my playlists as is and I can add songs I like from Soundcloud. Since the videos are uploaded as private, they work fine in my playlist and won't have copyright issues.

Install

Download and build the source:

$ git clone https://github.com/Cyan903/Soundcloud-yt.git
$ pnpm i
$ pnpm run build
$ pnpm start

Create and edit your config secret:

$ cp config/secret_example config/secret.json
$ nano config/secret.json
{
    "installed": {
        "client_id": "<client_id>.apps.googleusercontent.com",
        "client_secret": "<client_secret>",
        "redirect_uris": ["http://localhost:8080/oauth2callback"],
        "auth_uri": "https://accounts.google.com/o/oauth2/auth",
        "token_uri": "https://accounts.google.com/o/oauth2/token"
    }
}

These values should match your YouTube data API. If you haven't setup the data API yet, you can follow the instuctions in SETUP.md.