Digital Movie Poster (DMP)
The web application creates a digital movie poster display for use on LED screens. Intended to run on a Raspberry Pi 4, but will run on any web server with Apache/NGINX, PHP 7.3+, and MySQL/Postgres.
- Create/Edit movie posters
- Show content ratings, processing logos, audience ratings
- Random order or drag-and-drop ordering
- Fade in/out or vertical slide transitions
- Pull posters from Plex and show currently playing
- Automatically fill in data using IMDB ID
- Control settings such as playing speed, transition speed, etc …
- Control display power using HDMI-CEC control
- Show Runtime
- Movie trailers
- Movie theme music
- Movie Voting! See WIKI for more info
Open to new features/suggestions/requests. Please use Github issues.
Any help or contributions would be greatly appreciated. Please submit pull requests.
Raspberry Pi 4 Image
An image of the install will be available to download in the near future.
A pre-installed image on a SD card will already be configured. Just plug-in-play and add posters.
Self Install Requirements
- Pi 4 or computer with at least 2GB of RAM. 4GB recommended.
- Apache/NGINX w/mod_rewrite enabled
- PHP 7.3+ with extensions: GD, Curl, Dom, MySql/Postgres
- Composer and Git
- Clone this repo to your web server.
- In the root of the application run
- In the root of the application duplicate the
.env.examplefile and rename to
.env. Do not delete the
- In the root of the application run
php artisan key:generateand
php artisan storage:link.
php artisan migrateto create the database tables.
- Point your web root to the
publicfolder of the application.
- Increase PHP ini
max_execution_timeto at least 600.
- Add your database credentials to the
- Add your TMDB API key to the
.envfile using this existing key:
- In the
NOTE: If you alter any of the application files other than the
.env file the update process will not work as it uses
git pull to update the application.
Make sure your web server supports/turned on mod_rewrite.
If using NGINX your configuration may need to be updated to support Laravel mod rewrites.
Movie Voting Service
The movie voting service runs on a socket.io server locally.
If you want to use the movie voting feature you will need to go into the
socketserver folder and run:
Next you will need to install PM2:
npm install -g pm2
Start the voting socket.io server run:
pm2 start server.js
Now the voting service will listen for connections when navigating to the
/voting path in your browser.
For self installations you will need to make sure you have the correct permissions for your application.
Below is an example:
sudo usermod -a -G www-data pi sudo chown -R -f www-data:www-data /var/www/html
You will need to lookup tutorials on how to boot your Pi in kiosk mode using chromium.
NOTE: THEME MUSIC AUDIO – You have to set this chromium flag in order to get audio to autoplay
Once your application is running navigate to either
movieposter.local, or if you did self-install,
On a fresh install with no posters in the database you will see a message asking you to open the application in a browser to start managing posters and settings.
Recommended poster size is 1400×2000 or higher, but retain the same ratio.
After you’ve added posters and are back on the DMP screen you can always return to the posters and settings configuration by clicking or tapping on the ‘Coming Soon/Now Playing’ header.
Poster Data Auto-population
When using the IMDB ID to manage poster data the application will use TMDB API to populate the metadata and poster image.
To use Plex, go to the settings configuration, check the checkbox to use the Plex service and enter your Plex IP address and Plex auth token. You can find your Plex auth token here.
Anytime a movie is played on Plex it will show the Now Playing poster.
On the poster list screen you can drag-and-drop each poster by the thumbnail to sort. If you have chosen to use a random order in the settings this list order is ignored.
A Note on Deleting Posters
If you delete a poster that was cached from a service like Plex the poster will return on next cache.
The cache service runs every 4 hours when the DMP screen is active. You can always choose which posters you want in the rotation.
In the settings view there is a
Update DMP link next to the
Save Settings button. Clicking Update DMP will update the application.
After the application updates you will need to refresh the browser, or if using the Pi in kiosk mode, restart the Pi.
Below are some screenshots taken from a local dev environment. IRL screenshots coming soon.
DMP open-sourced software licensed under the MIT license.