Skip to content

Latest commit

 

History

History
59 lines (45 loc) · 1.55 KB

README.md

File metadata and controls

59 lines (45 loc) · 1.55 KB

grasstube

Multi channel synchronized player written in Elixir / Phoenix

Includes soft subtitle rendering using SubtitlesOctopus

Features

  • Custom player
    • Soft subtitles
    • YouTube support
    • Google Drive support (using a userscript)
    • Thumbnails
    • Playlist repeat modes
    • Automatic pausing
  • Authentication
    • User created rooms
      • Private rooms
      • Public controls
      • Adding users' emote lists
      • Granting operator controls to users
      • Editing rooms
      • Room userscripts
    • User provided list of emotes
  • Integrated youtube search

External Dependencies

  • ffmpeg
  • youtube-dl (or yt-dlp)

Thumbnails

Thumbnails are optional.

.thumb struct:

40 bytes header:
  4 bytes unsigned int - Number of frames
  4 bytes float - Time of last frame
  32 bytes ascii - MIME type

n bytes body:
  4 + m bytes image:
    4 bytes unsigned int - m (file size)
    m bytes binary image data

More info and example on generating the files can be found in the thumb directory.

To start your Phoenix server:

  • Install dependencies with mix deps.get
  • Create and migrate your database with mix ecto.setup
  • Start Phoenix endpoint with mix phx.server
    • Or enter the interactive shell with iex -S mix phx.server

Now you can visit localhost:4000 from your browser

Ready to run in production? Please check our deployment guides.