This project is a self-service video export kiosk system that allows users to select and copy video files to a USB drive via a touchscreen interface. It's designed for exhibitions, media labs, or public installations where users can take selected video files with them — no technical knowledge required.
- ✅ Touch-friendly web interface in fullscreen kiosk mode
- 🎞️ Video previews and checkboxes for selection
- 💾 Export selected files to a USB drive
- 🔊 Auditory confirmation (sound) when transfer is complete
⏏️ Auto-eject USB stick after successful copy- 🚧 Progress bar and real-time status updates
- 🛡️ Error handling for missing files and device detection
Try Demo: Video-Kiosk-2-USB-Copier
|
Interface (Chromium) |
Interface (Chromium) |
A fullscreen HTML interface running in Chromium's kiosk mode. It:
- Displays videos from a local directory
- Lets users select videos with checkboxes
- Creates a
selected_videos.txtfile containing chosen filenames when "Start" is clicked
A Bash script that:
- Launches the HTML file in Chromium kiosk mode
- Monitors for the presence of
selected_videos.txt - Waits for a USB drive to be inserted
- Copies the selected videos from a predefined folder (
/home/kiosk/Kiosk) to the USB drive - Displays a graphical progress bar using
yad - Plays a success sound and ejects the USB stick automatically
Your videos are managed remotely, the two scripts in the Server/ folder provide automatic or manual synchronization of video files from a network source (e.g. an SMB share or mounted NAS).
A manual sync script that copies new video files from a server directory (source) to the local kiosk directory /home/kiosk/Kiosk. Ideal for one-time updates or remote management.
Same logic as above but designed for automated syncing, e.g., when used in a scheduled task (cron, systemd timer). It ensures that the kiosk is always up to date with the server content — without user interaction.
To run Videos2kiosk_auto.sh every hour:
0 * * * * /home/kiosk/Server/Videos2kiosk_auto.sh >> /home/kiosk/Server/sync.log 2>&1This ensures your kiosk always has the latest content from the server.
/home/kiosk/
├── Kiosk/ # Local video folder shown in the HTML UI
├── Kiosk/dwvid.html # Kiosk HTML interface
├── success.wav # Sound notification after successful copy
├── selected_videos.txt # Auto-generated list of selected videos
├── copy_videos.log # Log file for copy operations
├── start_kiosk_and_copy_2.sh # Main script to run the kiosk and handle USB copy
└── Server/
├── Videos2kiosk.sh # Manual sync script for updating video files from a server
└── Videos2kiosk_auto.sh # Auto-sync version for scheduled use (e.g., via cron)
-
Install
Chromium,yad,aplay, andflatpaksupport if needed -
Set up the
Kiosk/folder with your videos -
Place the scripts in
/home/kiosk/ -
Make the Bash script executable:
chmod +x start_kiosk_and_copy_2.sh
-
Run the script:
./start_kiosk_and_copy_2.sh
- Linux (Debian-based recommended)
- Flatpak Chromium or regular Chromium install
yadfor graphical dialogsaplayfor audio notification- USB automount enabled under
/media/kiosk/
- Museums and media exhibitions
- Public interactive terminals
- Studios allowing guests to take footage
- Educational settings with offline video sharing
This project is licensed under the GNU General Public License v3.0 (GPL-3.0).
You are free to use, modify, and distribute it — as long as you share your changes under the same license.
Originally developed for Phantomcrew's corporate identity needs, now open for your adaptation.
Made with ❤️ by Julius – phantomcrew.de
