🍿 An AirPlay friendly web interface to stream your movies and TV shows from a home server.

Related tags

CMS laravel vue airplay
Overview

Airflix

Build Status Total Downloads Latest Stable Version License

Airflix is a web application for browsing and playing movies and TV shows from a local home server. The overall goal of the project is to provide a beautiful HTTP interface to AirPlay or Chromecast media onto your TV screen from a phone or tablet.

Airflix Demo

Installation

You can download Airflix either through GitHub or composer.

Via GitHub

$ git clone --depth=1 [email protected]:wells/airflix.git airflix.local

Via Composer Create-Project

You may also install Airflix by issuing the Composer create-project command in your terminal:

$ composer create-project --prefer-dist airflix/airflix airflix.local

Recommended Servers

We recommend that you use the following servers to run Airflix.

When trying this application out in a development environment, please note that Laravel Valet currently does not play video files. We recommend you either use Laravel Homestead or a local install of nginx (i.e. from homebrew). Hopefully this will change soon, so we can ngrok our Airflix installs. You could always just setup a tinc VPN with some avahi for your home network.

Create a Database

We recommend you use a database with utf8mb4 encoding and utf8mb4_unicode_520_ci collation. Make sure you also update your .env file with your database credentials and other configuration options.

Apply for an API Token

Airflix requires an API token from themoviedb.org to gather information and images. You will need to create an account and apply there to acquire a key for access to this API.

Configuration

Once you have an API key ready to use, you can simply run php artisan airflix:install to run migrations, configure your folders, and enter API keys. This command will also perform an initial scan of your movies and TV shows folders for content, which will take time on the first run.

Documentation

Airflix has api documentation.

Folders

The folders that contain movies and TV shows follow certain naming conventions.

Each movie is contained inside a folder named with either the movie title (i.e. /Films/Serenity/Serenity.m4v) or the movie title with the release year in parenthesis (i.e. /Films/Avatar (2009)/Avatar (2009).m4v).

TV Shows are contained inside a folder with a similar naming convention to a movie, except each episode file has a S##E##.m4v naming format (i.e. /TV Shows/Stargate Atlantis/S01E01.m4v).

If you use a different file extension from m4v (i.e. mp4) for your video files, you can edit the AIRFLIX_EXTENSIONS_VIDEO in your .env file.

Jobs

We recommend you run redis-server on your home server so that Airflix can queue up jobs. This is required for the Settings page to function properly.

Please see the Laravel documentation to learn how to setup a queue daemon. We recommend limiting to one queue:work process since most of the jobs are synchronous in nature.

We have provided a sample /etc/supervisor/conf.d/airflix-worker.conf file below:

[program:airflix-worker]
process_name=%(program_name)s_%(process_num)02d
command=php /srv/www/airflix.local/current/artisan queue:work redis --sleep=3 --tries=3 --daemon
autostart=true
autorestart=true
user=www-data
numprocs=1
redirect_stderr=true
stdout_logfile=/srv/www/airflix.local/storage/logs/airflix-worker.log

Schedule

Airflix has a number of scheduled tasks to refresh your folder list on a weekly basis. Just add something like the following into your server's cron:

* * * * * php /srv/www/airflix.local/current/artisan schedule:run >> /dev/null 2>&1

Commands

We have provided a number of Laravel Artisan commands including airflix:history, airflix:install, airflix:folders, airflix:genres, airflix:movies, airflix:shows, and airflix:keys. For more information about each command, you can run php artisan help <command> to find out what options are available for each command.

Testing

$ phpunit

License

Airflix is open-sourced software licensed under the MIT license

You might also like...
Elefant, the refreshingly simple PHP CMS and web framework.

Elefant is a refreshingly simple PHP content management system and web framework. Elefant is a fast, lean tool for building everything from simple websites to complete web applications.

ExpressionEngine is a flexible, feature-rich, free open-source content management platform that empowers hundreds of thousands of individuals and organizations around the world to easily manage their web site.
ExpressionEngine is a flexible, feature-rich, free open-source content management platform that empowers hundreds of thousands of individuals and organizations around the world to easily manage their web site.

ExpressionEngine CMS ExpressionEngine is a mature, flexible, secure, free open-source content management system. It is beloved by designers for giving

BaiCloud-cms is a powerful open source CMS that allows you to create professional websites and scalable web applications. Visit the project website for more information.

BaiCloud-cms About BaiCloud-cms is a powerful open source CMS that allows you to create professional websites and scalable web applications. Visit the

Security, performance, marketing, and design tools — Jetpack is made by WordPress experts to make WP sites safer and faster, and help you grow your traffic.

Jetpack Monorepo This is the Jetpack Monorepo. It contains source code for the Jetpack plugin, the Jetpack composer packages, and other things. How to

This is a web application for money transfer.

BANKING WEB APPLICATION This repository consists of a basic banking system built using PHP. This task was successfully completed for the SPARKS FOUNDA

A reponsive web application blog where users can create & host their articles
A reponsive web application blog where users can create & host their articles

Blog A reponsive web application blog where users can create & host their articles Tech Stack Bootstrap 5 CodeIgniter 4 GSAP AOS TrixEditor SweetAlert

Soosyze CMS is a minimalist content management system in PHP, without database to create and manage your website easily
Soosyze CMS is a minimalist content management system in PHP, without database to create and manage your website easily

Soosyze CMS is a content management system without a database. It's easy to create and manage you

Add subtitles into your WordPress posts, pages, custom post types, and themes. No coding required.
Add subtitles into your WordPress posts, pages, custom post types, and themes. No coding required.

Add subtitles into your WordPress posts, pages, custom post types, and themes. No coding required. Simply activate Subtitles and you're ready to go.

A module allowing you to write your Processwire template using MJML and get a converted HTML output using MJML API.
A module allowing you to write your Processwire template using MJML and get a converted HTML output using MJML API.

PageMjmlToHtml A module allowing you to write your Processwire template using MJML and get a converted HTML output using MJML API. This is considered

Comments
  • Running project

    Running project

    Hi, installation was fine - no errors whatsoever. Although there are no docs about running the project itself, i tried to use php artisan:serve, it returns me the message the website is now available on localhost:8000 although i can't access it?

    opened by ghost 1
  • @wells

    @wells

    @wells Installing Theme from uploaded file: airflix-master.zip Unpacking the package…

    Installing the theme…

    The package could not be installed. The theme is missing the style.css stylesheet.

    Theme install failed.

    opened by glerinsonum 1
  • try to install but error on composer

    try to install but error on composer

    Hi, im traing to use thi web app but and error occour: with composer install:

    Generating autoload files

    php artisan clear-compiled

    [PDOException]
    could not find driver

    Script php artisan clear-compiled handling the post-install-cmd event returned with error code 1

    any help please?

    opened by hardlick 0
Releases(v1.1.6)
  • v1.1.6(Mar 17, 2017)

    Improvements

    • Support multiple file extensions for video files (i.e. m4v, mp4), where the order of the list determines the priority of which file type is served first when available.
    Source code(tar.gz)
    Source code(zip)
  • v1.1.5(Feb 17, 2017)

  • v1.1.4(Dec 27, 2016)

  • v1.1.3(Dec 27, 2016)

    Improvements

    • Debounce only API calls for keyword search
      • Updates filtered results in the DOM before the API calls are made
      • Fixes a keyboard input bug where _.debounce dropped keystrokes
    • Splice in updated records and add callback functions back for the vuex addRecord helper
      • Causes a slight performance hit compared to v1.1.2
      • Fixes a reactivity bug with the movie and TV show edit screens
    Source code(tar.gz)
    Source code(zip)
  • v1.1.2(Dec 27, 2016)

  • v1.1.1(Dec 27, 2016)

    Improvements

    • Speed up load performance, specifically of the movies and TV shows index pages
    • Replace all typed equality comparison operators (===) in JS
    Source code(tar.gz)
    Source code(zip)
  • v1.1.0(Dec 26, 2016)

    Prepare for the season premiere.

    Updates primary dependencies:

    • Laravel 5.3
    • Vue.JS 2.1
      • vue-router 2.1
      • vuex 2.1
      • axios 0.15 (replaces vue-resource)
    Source code(tar.gz)
    Source code(zip)
  • v1.0.0(Jul 25, 2016)

Owner
Brian Wells
Brian Wells
Craft is a flexible, user-friendly CMS for creating custom digital experiences on the web and beyond.

About Craft CMS Craft is a flexible, user-friendly CMS for creating custom digital experiences on the web and beyond. It features: An intuitive, user-

Craft CMS 2.9k Jan 1, 2023
ProcessWire 3.x is a friendly and powerful open source CMS with a strong API.

Welcome to ProcessWire 3.x This document is in Markdown. An HTML formatted version of this document can be read at: https://github.com/processwire/pro

ProcessWire 804 Jan 3, 2023
An advanced yet user-friendly content management system, based on the full stack Symfony framework combined with a whole host of community bundles

An advanced yet user-friendly content management system, based on the full stack Symfony framework combined with a whole host of community bundles. It provides a full featured, multi-language CMS system with an innovative page and form assembling process, versioning, workflow, translation and media managers and much more.

Kunstmaan | Accenture Interactive 374 Dec 23, 2022
🦉 Administrative interface builder for Laravel (Laravel admin)

Laravel Admin Panel SleepingOwl SleepingOwl Admin is an administrative interface builder for Laravel. Completely free Support Laravel > 5.5 - 5.8 (PHP

Laravel Framework Russian Community 746 Jan 4, 2023
Registry Component provides a fluent, object-oriented interface for storing data globally in a well managed fashion, helping to prevent global meltdown.

Registry Component Registry Component provides a fluent, object-oriented interface for storing data globally in a well managed fashion, helping to pre

ATOMASTIC 8 Jun 30, 2022
igniCMS is an administrative interface builder for Laravel 5.6.

igniCMS is an administrative interface builder for Laravel 5.6.

Despark Bulgaria EAD 13 Nov 4, 2022
Manage your photos with Piwigo, a full featured open source photo gallery application for the web. Star us on Github! More than 200 plugins and themes available. Join us and contribute!

Manage your photo library. Piwigo is open source photo gallery software for the web. Designed for organisations, teams and individuals. The piwigo.org

Piwigo 2.3k Jan 1, 2023
Ampache is a web based audio/video streaming application and file manager allowing you to access your music & videos from anywhere, using almost any internet enabled device.

Ampache is a web based audio/video streaming application and file manager allowing you to access your music & videos from anywhere, using almost any internet enabled device.

null 3.2k Jan 5, 2023
Origin CMS for Laravel to kickstart your web applications

Installation git clone -b master https://github.com/akhileshdarjee/origin-cms.git Update new git project URL composer install cp .env.example .env php

Akhilesh Darjee 8 May 11, 2022
🐦 A personal music streaming server that works.

koel Intro Koel (also stylized as koel, with a lowercase k) is a simple web-based personal audio streaming service written in Vue on the client side a

Koel 14.3k Jan 4, 2023