watch-together-old

command module
v0.0.0-...-f2ba6e3 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: May 12, 2021 License: Apache-2.0 Imports: 1 Imported by: 0

README

Watch Together 📷

A lightweight video streaming platform. Watch movies with your friends.

Share your media library with a single command. Friends from all over the world can watch with you.

Usage

Initialize settings and scan library for movie files

watch-together init

This creates a new config directory at ~/.config/watch-together

Inside the directory a .watch-together.toml file will be created that persists config settings between runs

TOML Configuration Options (defaults)

# The port that the server will be hosted on. Forward this port for public access.
port = "8080"

# The directory to look for movies in
video-dir = "/home/[username]/Videos

# The name of the metadata database to create in your config directory
database = "library.db"

Architecture

Frontend

The frontend is written in SvelteJS with Tailwind CSS. The UI is bundled inside the binary. The server host simply launches the binary, opens the port on their router, and sends other watchers their IP address.

Server Package

The server is responsible for serving HTTP request from all clients. It is run with the binary. It serves the static assets as well as the HLS segments.

Video Video Packge

Video is responsible for all video data transcoding and library processing. Most of its functions are called by the host via the website interface.

Movies Package

Metadata consists of an IMDB scraper and a simple REST microservice to serve query requests. When a user first launches Watch Together, their local harddisk will be scanned for video files. Watch Together will try to contact the metadata API to retrieve imdb info including the poster, summary, rating, etc... If the server could not automatically find an appropriate match users will be able to manually set the metdata via the web interface.

The movie database currently has ~200,000 movies within it.

Goals

  • Stream HLS encoding videos
  • Live chat
  • Scan directory for movies and download metadata
  • Live transode videos on the fly to HLS

Technology

  • Svelte
    • svelte-spa-router
  • Tailwind CSS
  • clappr
  • Golang
    • cobra / viper (CLI and config)
    • gorilla/websocket
    • chi/router
  • FFMPEG

Documentation

The Go Gopher

There is no documentation for this package.

Directories

Path Synopsis
movies
api

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL