Railway

Deploy Cobalt Tools

Download from YouTube, TikTok & 20+ platforms. No tracking.

Deploy Cobalt Tools

Just deployed

Deploy and Host Cobalt Tools on Railway

Self-host Cobalt: YouTube, TikTok, Instagram, Twitter/X, Reddit, SoundCloud, Vimeo, and 20+ supported platforms. No ads. No tracking.

Cobalt is an open-source media downloader focused on a clean, privacy-first download experience. Paste a supported public media URL, send it to your own Cobalt API instance, and receive a direct response for downloading or streaming the resolved media.

This Railway template deploys the official Cobalt container image as a lightweight, stateless service. No database, Redis, or persistent volume is required for the default setup.

What This Template Deploys

ServicePurpose
Cobalt APIStateless media processing API that accepts a public media URL and returns a download, redirect, tunnel, picker, or processing response

This template runs a single Cobalt container using:

ghcr.io/imputnet/cobalt:latest

Default port:

9000

About Hosting Cobalt Tools

Hosting Cobalt Tools gives you your own media downloader API instead of relying only on shared public instances. Your deployment runs under your own Railway public domain and processes requests through your own container.

Cobalt is designed as a stateless service. It does not require accounts, databases, queues, or long-term file storage. Each request is processed independently, and media is proxied or resolved directly for the requester.

This makes it suitable for personal use, internal tools, media workflows, and automation pipelines where you want a clean API endpoint without ads, trackers, or third-party downloader pages.

Common Use Cases

  • Self-hosted media downloader API
  • Ad-free and tracking-free public media downloads
  • YouTube, TikTok, Instagram, Twitter/X, Reddit, SoundCloud, and Vimeo download workflows
  • Audio extraction from supported public media URLs
  • n8n, Make, or backend automation integration
  • Private media utility for personal or team use
  • API backend for a custom downloader frontend

Supported Platforms

Cobalt supports multiple public media platforms, including commonly used services such as:

CategoryExamples
VideoYouTube, Vimeo, Dailymotion, Twitch clips
SocialTikTok, Instagram, Twitter/X, Reddit
AudioSoundCloud and other supported audio sources
OtherAdditional supported public media platforms

Platform compatibility can change because external websites frequently update their infrastructure. Always check the official Cobalt repository and documentation for the current compatibility status.

Dependencies for Cobalt Tools Hosting

Deployment Dependencies

  • Docker image: ghcr.io/imputnet/cobalt:latest
  • Railway public domain
  • No database required
  • No Redis required for the default setup
  • No persistent volume required for the default setup

Environment Variables

Only API_URL is required by Cobalt. The other variables below are recommended for Railway compatibility and safer public deployment.

PORT=9000
API_PORT=9000
API_LISTEN_ADDRESS=0.0.0.0
API_URL=https://${{RAILWAY_PUBLIC_DOMAIN}}/

CORS_WILDCARD=1

RATELIMIT_WINDOW=60
RATELIMIT_MAX=20
SESSION_RATELIMIT_WINDOW=60
SESSION_RATELIMIT_MAX=10
TUNNEL_RATELIMIT_WINDOW=60
TUNNEL_RATELIMIT_MAX=40

DURATION_LIMIT=10800
TUNNEL_LIFESPAN=90
PROCESSING_PRIORITY=10
FORCE_LOCAL_PROCESSING=never

Deployment

  1. Deploy this template on Railway.
  2. Railway starts the official Cobalt container.
  3. Railway generates a public domain for your service.
  4. API_URL points Cobalt to your Railway public domain.
  5. Open your public domain or send a POST request to the API.

No SSH, database setup, Redis setup, storage bucket, or reverse proxy configuration is required.

API Usage Example

Send a POST request to your Railway domain:

curl -X POST "https://your-app.up.railway.app/" \
  -H "Accept: application/json" \
  -H "Content-Type: application/json" \
  -d '{
    "url": "https://example.com/public-media-url",
    "downloadMode": "auto",
    "videoQuality": "1080",
    "audioFormat": "mp3"
  }'

Cobalt may return a redirect, tunnel, picker, local-processing response, or error depending on the media source and requested options.

Optional Private Access

If you expose your Cobalt instance publicly, consider protecting it with authentication or stricter rate limits.

Cobalt supports authenticated API access when configured by the instance owner. Authentication is sent through the Authorization header.

Example:

Authorization: Api-Key your-api-key

or:

Authorization: Bearer your-token

For a public Railway template, the default setup keeps authentication disabled so users can deploy and test quickly. For private or team usage, enable authentication after deployment.

Cobalt vs Ad-Supported Downloader Sites

FeatureSelf-hosted CobaltTypical ad-supported downloader sites
AdsNoneOften aggressive
TrackingNone by designCommon
Open sourceYesUsually no
Self-hostableYesNo
API accessYesUsually no
Database requiredNoNot applicable
Persistent storage requiredNoNot applicable
Automation-friendlyYesLimited

Implementation Details

This template runs Cobalt as a stateless API service. Each request is processed independently. Cobalt resolves the requested public media URL, then returns a response that can include a direct URL, redirected media, tunnel response, picker response, or local processing instruction.

The most important configuration is:

API_URL=https://${{RAILWAY_PUBLIC_DOMAIN}}/

Without the correct API_URL, Cobalt may generate incorrect response URLs for your public instance.

For the default Railway deployment, you do not need:

  • PostgreSQL
  • MySQL
  • Redis
  • S3-compatible storage
  • Railway volume
  • NFS storage
  • Manual SSL certificate setup

Frequently Asked Questions

Does this template include the Cobalt web frontend?

This template focuses on the Cobalt API container. You can use it directly through API requests or connect it to a compatible frontend or automation workflow.

Does Cobalt store downloaded files?

No. The default deployment does not use persistent storage. Cobalt works as a stateless processing and proxy service.

Do I need Redis?

No for a basic single-container deployment. Redis is only useful for advanced multi-instance setups or shared tunnel state.

Do I need a Railway volume?

No. A Railway volume is not required for the default setup.

Can I use this with n8n?

Yes. Use an HTTP Request node and send a POST request to your Cobalt Railway domain with a JSON body containing the target public media URL.

Can I restrict access?

Yes. Configure Cobalt authentication and require clients to send an Authorization header.

Can platform support break?

Yes. Supported websites can change their anti-bot, media delivery, or download behavior at any time. Self-hosting gives you more control, but it does not guarantee permanent compatibility with every platform.

Is Cobalt legal to use?

Cobalt is intended for downloading free and publicly accessible content. The user is responsible for how downloaded content is used and distributed. Always respect copyright, platform terms, and local laws.

Why Deploy Cobalt Tools on Railway?

Railway is a singular platform to deploy your infrastructure stack. Railway will host your infrastructure so you don't have to deal with configuration, while allowing you to vertically and horizontally scale it.

By deploying Cobalt Tools on Railway, you get a clean self-hosted media downloader API with no database, no storage setup, no manual SSL, and no server administration.


Template Content

More templates in this category

View Template
Rocky Linux
[Jun'26] Hosted Rocky Linux 9 workspace with SSH and persistent storage. 🚀

codestorm
15
View Template
Foundry Virtual Tabletop
A Self-Hosted & Modern Roleplaying Platform

Lucas
70
View Template
Letta Code Remote
Run a Letta Code agent 24/7. No inbound ports, just deploy.

Letta
45