Skip to content
simukkaPublic

About

Playstick turns an ASUS VivoStick TS10 into a compact, dedicated AirPlay mirroring receiver that plugs directly into a projector's HDMI port.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Repository files navigation

playstick

Old tech meets modern software.

Playstick turns an ASUS VivoStick TS10 into a compact, dedicated media player that plugs directly into a projector's HDMI port.

It provisions and measures a minimal Ubuntu Server installation with video rendered directly through the Intel integrated graphics stack without an X server or desktop environment.

What makes it different

  • No desktop, no X server. Video goes straight to the Intel GPU over KMS/DRM via cage/seatd on tty1.
  • Fully provisioned by Ansible over SSH. The device holds no state you can't rebuild; every tunable lives in group_vars, and the control node ships as a Docker image.
  • AirPlay mirroring receiver built on UxPlay mirror any Apple device straight to the projector.
  • Child-friendly web movie library. Plays films off a read-only CIFS NAS automount from a browser UI simple enough for a kid.
  • It controls the projector itself. RS-232 switches the projector on and off, and an idle framebuffer clock shows when nothing is playing.

Everyone can hear their own language

Every viewer opens the library on their own device, picks a language, and listens on their own headphones. Each device pins its audio to the film's master clock, so the whole room stays in sync (a skip re-syncs everyone automatically). Two people watching the same film can hear it in different languages at once.

Great for multi-language households, friends, and parties.

The phone UI: the library, the remote, and choosing a language

The phone is the remote

Open the stick's address on any phone or tablet on the home network. There is nothing to install.

  • Tap a poster to play it. The projector switches itself on, and the page says so while the lamp warms up.
  • A series is one tile. Tapping it opens the seasons and their episodes.
  • Sort and filter by title, year, or genre.
  • Big, simple controls while a film plays: skip ten seconds, pause, stop, and volume.
More screenshots

The library grid A series and its episodes Sorting and filtering Waiting for the projector to warm up The remote while a film plays Choosing sound and language The library on a tablet

A desktop app to run the library

The heavy lifting happens on your own computer, not the stick. The Playstick app (PySide6, make admin) scans your folders of films, lets you choose what goes on the stick, and prepares each film in the background: probing, re-encoding where the stick needs it, extracting per-language audio, and matching it on TMDb.

Prepare: choose films from your sources and watch the queue

  • Prepare. Every film on every source, the share included, in one sortable table. Select what you want and add it to the library; the queue works through them one at a time, survives the app being closed, and can be paused, reordered or retried from each row's menu.
  • Library. What the stick is actually holding, with posters. Double-click a film to fix its title, genre or rating, or correct a bad TMDb match, and the change goes straight to the stick.
  • Device. Whether the stick is reachable, playback and volume controls, recovery for films that didn't get through, and Update device when this machine has something newer to deploy.
  • Config. The share, the stick and how to log in to it; the folders films come from; how the appliance behaves; and the deploy console.

Library: correct a film's metadata or TMDb match

More screenshots

Library Device, with an update waiting Config: settings

All screenshots use a demo library of public-domain films.

About

Playstick turns an ASUS VivoStick TS10 into a compact, dedicated AirPlay mirroring receiver that plugs directly into a projector's HDMI port.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages