Songs2VID: Upload your music to YouTube in seconds + Free Workflow

In this article we’re going to cover:

  1. The Problem: Why manual audio-to-video uploads waste hours
  2. The Solution: Introducing n8n-nodes-songs2vid
  3. Step-by-Step Setup
    • 3.1 Install the Community Node
    • 3.2 Credentials & Node Inputs
  4. Example Workflows
    • 4.1 Create a render (single audio upload)
    • 4.2 Multiple audios upload
  5. All Endpoints
  6. Example Workflows (JSON)
  7. Feedback & Roadmap

Songs2VID turns MP3/WAV + artwork into a YouTube-ready MP4 and can upload it to your connected channel. The n8n node maps every public /api/v1 endpoint - upload, create render, poll status, playlists, API keys - so you can wire it into Drive/Dropbox/S3 triggers without babysitting FFmpeg.

At the end you’ll find ready-to-import workflow JSON for a single track and a batch flow.

Links


1. The Problem

If you release music, beats, or podcast episodes regularly, the manual loop is painful:

  1. Export audio
  2. Open a video editor or “audio → video” tool
  3. Add cover art
  4. Export MP4
  5. Open YouTube Studio and upload metadata

That doesn’t scale for catalogs, label drops, or “new file in Drive → live on YouTube” automation.

You want something headless: trigger → upload → render → publish → notify Slack/Discord.


2. The Solution: n8n-nodes-songs2vid

Package name: n8n-nodes-songs2vid
What it does: wraps the Songs2VID REST API as native n8n nodes.

Typical flow:

Trigger (Drive / Dropbox / Webhook)

→ Upload cover (image)

→ Upload audio

→ Create Render

→ Webhook OR poll until complete

→ Notify / update Notion / etc.

Important: renders are async. A single HTTP call can take minutes. Use a webhook (recommended) or poll Get Render Status - don’t block one HTTP node waiting for FFmpeg.

Plans (cloud)

Plan REST API
Free / Independent Producer (€7) Web UI only - API returns 403
Developer & Automation (€15) Full REST + webhooks
Self-hosted OSS API always on at your own origin

You also need YouTube connected on the Songs2VID dashboard (Google OAuth with YouTube scopes).


3. Step-by-step setup

3.1 Install the community node

Via n8n UI (recommended)

  1. Settings → Community nodes
  2. Install
  3. Enter exactly:
n8n-nodes-songs2vid

  1. On the canvas, search Songs2VID

Self-hosted n8n: ensure community packages are enabled:

N8N_COMMUNITY_PACKAGES_ENABLED=true

Manual install

cd ~/.n8n

npm install n8n-nodes-songs2vid

# restart n8n


3.2 Credentials & first node

Create an API key

  1. Sign in at Songs2VID Dashboard

  2. Settings → API access

  3. Create your key

  4. Copy (s2yt_live_...)

Important Note: Requires Developer & Automation on cloud

Add credential in n8n

  1. Open any Songs2VID node → Create new credential
  2. API Key: s2yt_live_... (with or without Bearer )
  3. Base URL: https://songs2vid.com (no trailing slash), or your self-hosted URL

Auth is always:

Authorization: Bearer s2yt_live_…

4. Example Workflow

4.1 Create a render

Try yourself:

Create Render returns:

{
   "jobId": "clxxxxxxxx",
   "status": "PENDING",
   "statusUrl": "/api/v1/jobs/clxxxxxxxx"
}

Webhook payload example

event Meaning
job.item.completed One track done
job.item.failed One track failed
job.completed All items succeeded
job.failed All failed
job.partial Mixed results

4.2 Multiple audios upload

Two patterns:

A) One job, multiple items (recommended)
One cover + many audio files in a single Create Render - pass multiple items in Additional Fields → Items JSON (or use the node’s multi-track UI).

B) Loop per file

Try yourself:

For large catalogs, upload files first (POST /api/v1/upload per file), then one render job with all paths - see the batch docs.


5. All endpoints (node ↔ API)

Resource Operation Method Path
Discovery Get API Catalog GET /api/v1
File Upload POST /api/v1/upload
Render Create Render POST /api/v1/render
Render Create Job (alias) POST /api/v1/jobs
Render Create Batch POST /api/v1/jobs/batch
Render Get Render Status GET /api/v1/jobs/:id
Render List Renders GET /api/v1/jobs
Playlist List GET /api/v1/playlists
Playlist Create POST /api/v1/playlists
API Key List / Create / Delete GET/POST/DELETE /api/v1/user/api-keys

Upload types: image | audio | logo | font
Resolutions: 1920x1080, 1280x720, 854x480, 720x720, 640x360, 426x240
Layout templates (Pro): COVER_LEFT_TEXT_RIGHT, COVER_TOP_TEXT_BOTTOM, etc.
Optional on Create Render: webhook URL, watermark, playlist, per-track cover, art-track layout — all under Additional Fields.

There is no Delete Render endpoint — finished videos live on YouTube.

Full field reference: Endpoints | Songs2VID


6. Example workflow JSON

Import via ⋯ → Import from File / URL:

Official template (HTTP + Webhook - works even before installing the node):

https://docs.songs2vid.com/docs/n8n/workflow-template.json

After installing n8n-nodes-songs2vid, swap HTTP Request nodes for native Songs2VID nodes and keep the same webhook branch.

Before running:

  1. Create Header Auth or Songs2VID credential (Bearer s2yt_live_...)
  2. Set SONGS2VID_WEBHOOK_URL to your Webhook node’s Production URL
  3. Provide binary fields cover and audio on the trigger item

7. Troubleshooting

Symptom Fix
Package not found Name must be exactly n8n-nodes-songs2vid
403 Developer plan Upgrade to Developer & Automation
403 YouTube not connected Reconnect Google + YouTube on dashboard
Webhook never fires Use Production URL, workflow Active, HTTPS reachable
HTTP timeout Don’t wait on Create Render - use webhook or poll
429 60 req/min per key - honor Retry-After

8. Feedback & roadmap

This is v1.0 - I’d love input from the n8n community:

  • More workflow templates (Spotify/Dropbox/S3 triggers)?
  • Built-in Wait-until-complete helper node?
  • Make.com / Zapier parity?

Drop a reply with your use case (label, podcaster, beat maker, agency) and what you’d automate next.

2 Me gusta