Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/fliegwerk/mediacenter
FMC: The fliegwerk mediacenter - PHP based, zero dependencies, no Javascript
https://github.com/fliegwerk/mediacenter
media mediacenter nodep nojavascript php website
Last synced: about 1 month ago
JSON representation
FMC: The fliegwerk mediacenter - PHP based, zero dependencies, no Javascript
- Host: GitHub
- URL: https://github.com/fliegwerk/mediacenter
- Owner: fliegwerk
- License: mit
- Created: 2020-05-26T12:59:14.000Z (over 4 years ago)
- Default Branch: master
- Last Pushed: 2022-01-31T00:11:11.000Z (about 3 years ago)
- Last Synced: 2024-11-12T23:09:18.413Z (3 months ago)
- Topics: media, mediacenter, nodep, nojavascript, php, website
- Language: PHP
- Homepage:
- Size: 61.5 KB
- Stars: 3
- Watchers: 1
- Forks: 0
- Open Issues: 3
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# FMC - The fliegwerk mediacenter
A simple mediacenter based on pure PHP without Javascript using only current browser features
## Installation
You need:
- any computing device with up-to-date software and network access
- a working web server with PHP support
- some *video* files1. Sort and tag your *videos* described in the [configuration section](#configuration).
2. Copy the php files in your http directory:
```
# cp index.php config.php search.php main.css /path/to/http
```
3. Link your prepared *video* directory with the following command:
```
# ln -s /path/to/videos /path/to/http/movies
```
4. Install for security reasons the available `.htaccess` file or if your web server do not support such files
configure it with the contents of this file.
The configuration prevents access from non-local networks.
5. Enable the web server to follow symlinks and configure PHP that it can access your prepared video directory.## Usage
Simply enter the URI or IP address of your device serving the website.
Now you will see all available video files placed in the prepared directory.
You can use the search bar at the top to search for specific titles,
and the search will give you titles partial matched with your title, too.## Configuration
### Directory structure
The *video* directory has the following structure:
```text
/path/to/videos/
├── My awesome title/
| ├── artwork.jpg
| ├── cover.jpg
| ├── data.json
| └── video.mp4
├── My next awesome title/
| ├── artwork.jpg
| ├── cover.jpg
| ├── data.json
| └── video.mp4
├── ...
```
In the root directory are one directory for each title named as you like.
In these directories there must be the following files:
- an `artwork.jpg` image in wide-format which will show before the video metadata loaded in the browser
- a `cover.jpg` image in upright-format which will show in the video list for this title
- a `data.json` metadata file which contains all important information for the title (see [Metadata format](#metadata-format))
- a `video.mp4` video file which actually delivers the video### Metadata format
The `data.json` file for every title has the following format:
```json
{
"title": "Your video title which is also the string to search for",
"subtitle": "Nice subtitle to your video",
"release": "The release of your video in ISO time-format e.g. 2009-10-01T06:58:00Z",
"director": "Who directed your video?",
"description": "A nice description placed below your video",
"genre": [
"genre",
"of",
"video"
],
"copyright": "Some nice copyright information to your video",
"badges": [
"hd-720p",
"hevc-h265",
"aac-128k"
]
}
```
All information will be parsed for every title and showed on the website.
The `badges` array contains the file names (without extension) that are stored as `[name].svg` in the `badges` directory. `"hd-720p"`, for example, would render the file `badges/hd-720p`.## Useful tools
### Simple installer
If you do not want to copy files around you can use the simple installer:
```
# ./installer.sh
```### Artwork compressor
If you have many titles with artwork and covers in raw size the browser have to download each image.
This is bandwidth consuming.
So you can use another simple tool that compresses all artwork and cover images to a more useful level.
Please install `imagemagick` with your favorite package manager before you use this tool.
Go to your prepared *video* directory and execute:
```
$ cd /path/to/video
$ /path/to/git/repo/tools/optimize-thumbnails
```
Or even better copy this tool to your local binary directory and make it executable:
```
# cp tools/optimize-thumbnails /usr/local/bin/
# chmod 755 /usr/local/bin/optimize-thumbnails
```
So you do not need the git repo at all.The thumbnail optimizer runs over every directory in your current working directory and looks for `[folder]/artwork.jpg`
and `[folder]/cover.jpg` and compresses it to the given size.No fear! The tool backups every image before compression and adds a `-full` to the filename,
for example `artwork.jpg -> artwork-full.jpg`.If an image already has the target size no further compression will occur, and the tool will skip it.
After you added a title directory to your video directory and prepared it, simply call the tool
and only the new images will be compressed.### Video file tagging
This tool automatically extracts information from a prepared video directory and imbeds them as mp4 atoms in the video file.Please install:
- `node` for server side javascript,
- `imagemagick` for cover compression,
- `AtomicParsley` for mp4 metadata editingwith your favorite package manager.
Copy the script to your local binary directory:
```
# cp tools/tag-video-file /usr/local/bin/
# chmod 755 /usr/local/bin/tag-video-file
```After installation go into a prepared directory and execute:
```
$ cd /path/to/videos/my-awesome-title/
$ tag-video-file
```
Finished!## Issues and Contributing
If you have any issues or suggestions, feel free to open an [issue](https://github.com/fliegwerk/mediacenter/issues)
or write us:## Project Information
This is a project by fliegwerk: