Unreleased

Coming soon

v1.1.0

Heads up: v1.1.0 changed how file transfers work, so everyone in a room needs to be on the same version. Update with junto update or brew upgrade before your next watch party.

Added

  • Watch from a URL: pass a YouTube link (or any site yt-dlp supports) to junto create instead of a local file. junto downloads it, caches it in ~/.cache/junto, and shares it to friends just like a regular file. Needs yt-dlp and ffmpeg installed. junto doctor now checks for both.
  • junto update: update to the latest release with one command. The binary swaps itself out; Homebrew and go install builds are pointed at the right upgrade command instead.
  • junto uninstall: cleanly remove junto. Add -purge to also wipe your settings and cache.
  • Config file: save your nickname, relays, mpv path, and connection settings in ~/.config/junto/config.toml so you don't retype them every session. Flags still override everything.
  • Automatic subtitle sharing: if you have a subtitle file next to your video, junto shares it automatically. Everyone gets the same subtitles loaded and in sync, no separate step needed.
  • Resumable downloads: quitting mid-session keeps your progress. Rejoining picks up where the download left off instead of starting over.
  • /ignore <nick>: stop a peer's chat and playback commands from affecting your session. /unignore undoes it.
  • /kick <nick>: ask a peer to leave; the rest of the room auto-ignores them. junto can't force anyone off a public relay, so a misbehaving client can decline. That's documented.
  • /sync: force a resync to the room's current state if something feels off, without quitting and rejoining.
  • Richer /peers: see each person's playback position, how far they've drifted, their download progress, and whether they're buffering or ignored.

Changed

  • Much faster file transfers: transfers now stay on a single connection for the whole session instead of rebuilding every 4 MiB. This fixes frequent stalls on HD and 4K files, and seeking no longer causes a reconnect pause.
  • More reliable mp4 and mov startup: junto now fetches the right part of the file first, so long films and 4K recordings start up reliably instead of sometimes stalling.
  • Faster playback start when joining: streaming joiners see video sooner after running junto join.

v1.0.0

Synchronized playback

  • Synced controls: play, pause, seek, speed, subtitle track and delay, and playlist position all mirror to everyone in the room within about a second. No single person is in charge, so there's no single point of failure.
  • Readiness gate: the host sees who's loaded and ready ("2/3 ready") and starts the room for everyone with one keypress. Late joiners skip straight to wherever the room is.
  • Buffering together: if someone seeks past what they've downloaded, the whole room pauses until everyone has caught up, then starts together.

File transfer and streaming

  • Direct peer-to-peer transfer: your files go straight from host to friends. No third party ever touches them, and each transfer is verified.
  • Streaming playback: friends start watching within seconds while the file downloads in the background. You don't wait for the whole thing.
  • Resumable transfers: a dropped connection picks up from the last byte instead of restarting.
  • TURN relay: if a direct connection fails due to strict router settings, you can route through a relay with -turn. junto tells you exactly what to do when it can't connect directly.
  • Live progress bar: shows download percent, speed, and time remaining, pinned at the bottom so chat stays readable above it.

Rooms and privacy

  • Room codes: a room is a secret you share as a jun1... code. junto create copies a ready-to-paste join command to your clipboard.
  • Encrypted sync messages: all coordination (play, pause, seek) is encrypted before it leaves your machine. The relays passing messages between friends can read none of it. Dropped relays reconnect silently.

Commands

  • junto create and junto join: the two commands you need. In-session chat with colored names, /pause, /play, /seek, /speed, /peers, /quit. Errors are plain English, not stack traces.
  • junto doctor: checks everything before you invite anyone, mpv, your internet connection, NAT, and disk space, and prints a fix for whatever fails.
  • junto version: prints your version, commit, and build date.
  • Binaries for macOS and Linux: brew install swayam-mishra/tap/junto installs mpv too. Linux builds for amd64 and arm64 on every release.