Skip to content

About

Practice tango moves from Instagram Reels — loop and slow down a section locally.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Latest commit

 

History

1 Commit

Folders and files

Repository files navigation

insta_tango

A small local web app for practicing tango moves you find in Instagram Reels. Paste a reel link in, it downloads the video to your machine, and you get a simple player where you can loop a section of the clip and slow it down to drill the move. Give each saved move a nickname so you can find it again later.

Single-user, runs entirely on your own machine — no accounts, no cloud sync, no server to deploy.

Features

  • Paste an Instagram reel URL and it downloads the video locally (via yt-dlp) and generates a thumbnail (via ffmpeg).
  • A library view of all your saved moves.
  • A player view per move with:
    • A dual-handle loop slider to pick the start/end of the section you want to drill — playback repeats that section automatically.
    • Speed controls (1x / 0.75x / 0.5x / 0.25x).
    • An editable nickname, separate from the original Instagram caption.
    • Your loop range, speed, and nickname are saved automatically and restored next time you open that move.
  • Delete moves you no longer need (removes the video file too).

Requirements

  • Node.js (v18+)

  • yt-dlp and ffmpeg, installed and on your machine. On macOS with Homebrew:

    brew install yt-dlp ffmpeg
    

    By default the app looks for these at /opt/homebrew/bin/yt-dlp and /opt/homebrew/bin/ffmpeg (the standard Homebrew path on Apple Silicon Macs). If yours are installed somewhere else (Intel Mac, Linux, etc.), update the paths in src/lib/paths.js. You can find your install paths with which yt-dlp and which ffmpeg.

    yt-dlp is updated frequently to keep up with Instagram's changes — if downloads start failing, try brew upgrade yt-dlp (or pip3 install --upgrade yt-dlp if you installed it via pip) before assuming something else is wrong.

Setup

git clone [email protected]:a17levine/insta_tango.git
cd insta_tango
npm install
npm start

Then open http://localhost:3000 in your browser.

Usage

  1. On the library page, paste an Instagram reel URL (e.g. https://www.instagram.com/p/DciOIgYOuqq/) and optionally give it a nickname, then click Save move. The download can take anywhere from a few seconds to about a minute.
  2. Click into a saved move to open the player.
  3. Drag the two handles under the video to set the loop's start and end points — the video will play, hit the end point, and jump back to the start automatically, on repeat.
  4. Use the speed buttons to slow playback down while looping.
  5. Click the nickname text to rename the move.
  6. Your loop range and speed are saved automatically a moment after you stop adjusting them.
  7. Delete a move from either the library or the player view when you're done with it.

Notes and limitations

  • Only public Instagram posts/reels are supported — private accounts or posts that require being logged in to view will fail to download. This is a deliberate v1 scope decision (no cookie/login support), not a bug.
  • This is meant to run locally for a single person. There's no authentication and nothing is deployed anywhere.

Project structure

server.js              Express app entry point
src/routes/records.js  API routes (create/list/get/update/delete a move)
src/lib/downloader.js  Downloads via yt-dlp, transcodes to H.264/AAC mp4
src/lib/thumbnails.js  Generates a thumbnail via ffmpeg
src/lib/db.js          Simple JSON file store (data/db.json)
public/                Frontend: library view, player view, loop slider
data/                  Downloaded videos, thumbnails, and the JSON db
                        (gitignored — created automatically on first run)

About

Practice tango moves from Instagram Reels — loop and slow down a section locally.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages