{"id":19932187,"url":"https://github.com/fliegwerk/mediacenter","last_synced_at":"2025-08-24T00:04:34.973Z","repository":{"id":44693743,"uuid":"267043497","full_name":"fliegwerk/mediacenter","owner":"fliegwerk","description":"FMC: The fliegwerk mediacenter - PHP based, zero dependencies, no Javascript","archived":false,"fork":false,"pushed_at":"2022-01-31T00:11:11.000Z","size":63,"stargazers_count":3,"open_issues_count":3,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-01-12T01:35:33.403Z","etag":null,"topics":["media","mediacenter","nodep","nojavascript","php","website"],"latest_commit_sha":null,"homepage":"","language":"PHP","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/fliegwerk.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2020-05-26T12:59:14.000Z","updated_at":"2022-01-31T00:11:13.000Z","dependencies_parsed_at":"2022-09-16T14:27:15.483Z","dependency_job_id":null,"html_url":"https://github.com/fliegwerk/mediacenter","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fliegwerk%2Fmediacenter","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fliegwerk%2Fmediacenter/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fliegwerk%2Fmediacenter/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fliegwerk%2Fmediacenter/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/fliegwerk","download_url":"https://codeload.github.com/fliegwerk/mediacenter/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":241358427,"owners_count":19949904,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["media","mediacenter","nodep","nojavascript","php","website"],"created_at":"2024-11-12T23:09:19.532Z","updated_at":"2025-03-01T11:27:44.396Z","avatar_url":"https://github.com/fliegwerk.png","language":"PHP","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\n  \u003cimg height=\"300\" src=\"./branding/logo/logo.svg\" alt=\"logo of fliegwerk mediacenter\"\u003e\n\u003c/p\u003e\n\n# FMC - The fliegwerk mediacenter\n\nA simple mediacenter based on pure PHP without Javascript using only current browser features\n\n## Installation\n\nYou need:\n- any computing device with up-to-date software and network access\n- a working web server with PHP support\n- some *video* files\n\n1. Sort and tag your *videos* described in the [configuration section](#configuration).\n2. Copy the php files in your http directory:\n   ```\n   # cp index.php config.php search.php main.css /path/to/http\n   ```\n3. Link your prepared *video* directory with the following command:\n   ```\n   # ln -s /path/to/videos /path/to/http/movies\n   ```\n4. Install for security reasons the available `.htaccess` file or if your web server do not support such files\n   configure it with the contents of this file.\n   The configuration prevents access from non-local networks.\n5. Enable the web server to follow symlinks and configure PHP that it can access your prepared video directory.\n\n## Usage\n\nSimply enter the URI or IP address of your device serving the website.\nNow you will see all available video files placed in the prepared directory.\nYou can use the search bar at the top to search for specific titles,\nand the search will give you titles partial matched with your title, too.\n\n## Configuration\n\n### Directory structure\nThe *video* directory has the following structure:\n```text\n/path/to/videos/\n├── My awesome title/\n|   ├── artwork.jpg\n|   ├── cover.jpg\n|   ├── data.json\n|   └── video.mp4\n├── My next awesome title/\n|   ├── artwork.jpg\n|   ├── cover.jpg\n|   ├── data.json\n|   └── video.mp4\n├── ...\n```\nIn the root directory are one directory for each title named as you like.\nIn these directories there must be the following files:\n- an `artwork.jpg` image in wide-format which will show before the video metadata loaded in the browser\n- a `cover.jpg` image in upright-format which will show in the video list for this title\n- a `data.json` metadata file which contains all important information for the title (see [Metadata format](#metadata-format))\n- a `video.mp4` video file which actually delivers the video\n\n### Metadata format\nThe `data.json` file for every title has the following format:\n```json\n{\n  \"title\": \"Your video title which is also the string to search for\",\n  \"subtitle\": \"Nice subtitle to your video\",\n  \"release\": \"The release of your video in ISO time-format e.g. 2009-10-01T06:58:00Z\",\n  \"director\": \"Who directed your video?\",\n  \"description\": \"A nice description placed below your video\",\n  \"genre\": [\n    \"genre\",\n    \"of\",\n    \"video\"\n  ],\n  \"copyright\": \"Some nice copyright information to your video\",\n  \"badges\": [\n    \"hd-720p\",\n    \"hevc-h265\",\n    \"aac-128k\"\n  ]\n}\n```\nAll information will be parsed for every title and showed on the website.\nThe `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`.\n\n## Useful tools\n\n### Simple installer\nIf you do not want to copy files around you can use the simple installer:\n```\n# ./installer.sh\n```\n\n### Artwork compressor\nIf you have many titles with artwork and covers in raw size the browser have to download each image.\nThis is bandwidth consuming.\nSo you can use another simple tool that compresses all artwork and cover images to a more useful level.\nPlease install `imagemagick` with your favorite package manager before you use this tool.\nGo to your prepared *video* directory and execute:\n```\n$ cd /path/to/video\n$ /path/to/git/repo/tools/optimize-thumbnails\n```\nOr even better copy this tool to your local binary directory and make it executable:\n```\n# cp tools/optimize-thumbnails /usr/local/bin/\n# chmod 755 /usr/local/bin/optimize-thumbnails\n```\nSo you do not need the git repo at all.\n\nThe thumbnail optimizer runs over every directory in your current working directory and looks for `[folder]/artwork.jpg`\nand `[folder]/cover.jpg` and compresses it to the given size.\n\nNo fear! The tool backups every image before compression and adds a `-full` to the filename,\nfor example `artwork.jpg -\u003e artwork-full.jpg`.\n\nIf an image already has the target size no further compression will occur, and the tool will skip it.\n\nAfter you added a title directory to your video directory and prepared it, simply call the tool\nand only the new images will be compressed.\n\n### Video file tagging\nThis tool automatically extracts information from a prepared video directory and imbeds them as mp4 atoms in the video file.\n\nPlease install:\n- `node` for server side javascript,\n- `imagemagick` for cover compression, \n- `AtomicParsley` for mp4 metadata editing\n\nwith your favorite package manager.\n\nCopy the script to your local binary directory:\n```\n# cp tools/tag-video-file /usr/local/bin/\n# chmod 755 /usr/local/bin/tag-video-file\n```\n\nAfter installation go into a prepared directory and execute:\n```\n$ cd /path/to/videos/my-awesome-title/\n$ tag-video-file\n```\nFinished!\n\n## Issues and Contributing\n\nIf you have any issues or suggestions, feel free to open an [issue](https://github.com/fliegwerk/mediacenter/issues)\nor write us: \u003chttps://www.fliegwerk.com/contact\u003e\n\n## Project Information\n\nThis is a project by fliegwerk: \u003chttps://www.fliegwerk.com/\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffliegwerk%2Fmediacenter","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffliegwerk%2Fmediacenter","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffliegwerk%2Fmediacenter/lists"}