DEV Community

BHARGAV REDDY SATTI
BHARGAV REDDY SATTI

Posted on

I Built a Free Bluesky Video Downloader — Here's How It Works

Bluesky is growing fast, but there's still no built-in way to download videos from posts. So I built bskyvideo.com — a free, lightning-fast tool that lets you save any video, GIF, or image from Bluesky directly to your device.

The Problem

If you've ever tried to save a video from Bluesky, you know the pain:

  • Right-click > "Save Video" doesn't exist
  • Screen recording loses quality
  • Most third-party tools serve broken .ts files that won't play on iPhones

My Solution

I built bskyvideo.com using Next.js 16 and the Bluesky AT Protocol. Here's how it works under the hood:

1. URL Parsing

The user pastes a Bluesky post URL like https://bsky.app/profile/user.bsky.social/post/abc123. The backend parses the handle and post ID.

2. AT Protocol Resolution

Using the public AT Protocol API, the tool resolves the handle to a DID (Decentralized Identifier), then fetches the full post thread to find embedded media.

3. Media Detection

The extraction engine recursively scans the post for any media type:

  • app.bsky.embed.video#view → Video
  • app.bsky.embed.images#view → Images (up to 4)
  • app.bsky.embed.recordWithMedia#view → Quote posts with media

4. Server-Side FFmpeg Remuxing

For videos, Bluesky serves HLS streams (fragmented MPEG-TS). Most downloaders just hand you the raw .ts file, which won't play on iPhones or QuickTime.

I injected FFmpeg into a Vercel serverless function that remuxes the stream into a proper MP4 container in real-time. The result is a universally compatible video file.

5. Image Proxy

For images, I built a proxy that adds Content-Disposition: attachment headers, forcing the browser to download the file instead of opening it in a new tab.

The Result

  • ⚡ Videos extract in under 2 seconds
  • 📱 MP4 files play on every device (iPhone, Android, Mac, Windows)
  • 🖼️ Images download in original HD resolution
  • 💰 100% free, no signup required

Try It

👉 bskyvideo.com

If you have any feedback or feature requests, drop them in the comments!

Top comments (0)