Streama

自托管流媒体服务器。「 Self hosted streaming media server. 」

Github stars Tracking Chart

STREAMA

有过一个装满节目和电影的巨大书架吗? 曾经想要将它们数字化,但没有一个很好的方法来组织文件? 不用担心了! 出于这样的目的,Streama 是你自己的个人 Netflix!

如果您想通过比特币捐赠给开发者,请使用 17rCUEX6KYQ8ZM4w39ttEUL7SUDnGCpcWq

实况演示

https://demo.streamaserver.org/

凭证:用户名:demoUser | 密码:demoUser

随意在那里玩游戏(一切都在晚上重置)

我们将在最新版本发布时更新此演示,以便您可以在决定在自己的环境中部署新功能之前先查看新功能。

入门

如果你在开始时有任何问题,请随时与我们在 Discord 上讨论。我们非常乐意帮助并相应地改进文档。

下载

  • 稳定版和测试版版本请参阅GitHub 发布
  • 不稳定/alpha 版本请参阅 StreamaBuild

应用程序

设置

当您第一次运行应用程序时,您将被重定向到设置页面。在此输入视频文件的所需上传目录, theMovieDb.org API key 和一个不同的基本 URL(如果需要的话) (用于远程托管)。

一旦您对任何设置进行了调整,请确保在保存前验证该值。

  • 对于 API 密钥,验证将根据 MovieDb.org 进行检查,以确定您是否输入了有效的 API 密钥。
  • 对于上传目录,应用程序会检查它是否具有读取/写入权限。

仪表板

在仪表板上,用户可以看到他们最近观看的电视节目和电影及其进度(他们可以继续他们离开的地方),并开始他们还没有看到的新节目和电影。 继续观看”功能的作用是定期更新数据库(当然只有在观看的时候!),并提供有关当前观看的视频的信息以及观看的距离。

如果电影或剧集不包含任何视频文件,则不会显示在仪表板中。

播放器

Streama-Player(非常)受到 Netflix 的启发,所以你可以从那里获得所有好东西。对于节目,有一个下一集”按钮和方便的插曲/季节浏览河还有基本功能:音量控制,播放/暂停和全屏。 稍后,我将添加一个功能来添加字幕并在视频文件之间切换(例如用于不同质量的上传)。 该播放器基于 HTML5,目前仅在 Chrome 中进行过测试。

Episode 浏览器

我特别为 Episode-Browser 而感到自豪,它的目标就是像 Netflix 一样运作。默认情况下,当前视频文件的季节被选中。用户可以了解本季节中有哪些其他情节,有多少季节,以及作为附加功能,即使没有添加视频文件,用户也可以看到所有添加的情节(因此灰显)。

管理员面板

对我来说最重要的事情之一就是尽可能简单有趣地管理节目,电影和剧集。为此,我大量使用 theMovieDatabase.org 中的 API,该 API 使用有用的信息自动填充剧集、节目和电影图片。这可以减轻用户在添加内容方面的作用。

例如,创建一个新的电视节目和第一季的剧集看起来像这样(请参考readme)。

上传每集的视频文件就像拖放一样简单!

访问现有文件

如果您想避免上传每个文件,请改用我们新的和改进的本地文件”功能。您可以定义一个本地目录(我使用直接在其中为所有安装的驱动器创建符号链接的目录),然后您可以使用本地文件浏览器查看单个电影/电视节目,也可以使用批量创建功能。

本地文件浏览器

您可以从任何电影或电视节目(无论您上传文件的任何位置)访问本地文件浏览器。注意:您需要先在设置中定义本地目录。

从文件批量创建

该MR解决了批量添加文件#241”的问题。注意:电视节目不一定要在场才能使用。一切都将由后端创建。

自定义匹配器

就像在Emby或Kodi中一样,匹配器 - 正则表达式可以被修改。这两个默认值是 电影:/^(?.*)[_.]\(\d{4}\).*/
TvShow/Episode :/^(?.+)[._]S(?\d{2})E(?\d{2,3}).*/

为了定制正则表达式,只需在application.yml的底部添加正则表达式就可以了:

streama:
  regex:
    movies: ^(?<Name>.*)[_.]\(\d{4}\).*
    shows: ^(?<Name>.+)[._]S(?<Season>\d{2})E(?<Episode>\d{2,3}).*

用户

用户可以在管理面板中受邀和管理。默认情况下,它们是非管理员,意味着他们只能查看视频,而不能创建视频。您可以通过按下按钮来让他们管理员。由于有用户管理,所以我计划扩大这个!我想添加的另一个功能是用户可以添加和管理某种形式的播放列表。有很多潜力可以让它变得更好!

技术细节

此应用程序基于 Web,服务器端使用 Grails 3 上编写。 SpringSecurity 用于登录和安装用户处理。对于所有前端组件,使用 AngularJS ,播放器完全基于 HTML5。该应用程序基本上分为 Grails for REST-API 和前端的 AngularJS。

Streama 为所有媒体元数据使用了来自 真棒API theMovieDatabase 的出色 API。

更新日志

请参阅每个发布或 git 日志的说明。

路线图

Streama 仍然是一项正在进行中的工作。我们会经常添加新功能和 bug 修复,但这是核心贡献者的爱好项目,所以我们花在它上的时间是有限的。

对于我们所有的功能和错误跟踪,我们使用问题部分。目前,Streama 的路线图将通过问题追踪器中的功能请求和改进工作。看看我们打算为即将发布的版本添加的里程碑。

贡献

功能,改进和错误修复

Streama 目前只拥有2-3个核心贡献者,所以我们感谢任何额外的贡献。通过合并请求发送,我们会尽快审核。

如果您不确定要做什么,请查看问题。有很多事情要做!

翻译

如果您想提供翻译,请按照指南进行操作。

已知问题

  • 目前没有视频转换,这意味着您依赖于 HTML5 浏览器兼容性。服务器端转换是我们的路线图。请参阅问题#440

许可证

Streama 根据 MIT 许可条款发布。 详情请参阅 LICENSE.md

(First edition: vz edited at 2019.08.29)

Overview

Name With Ownerraxjs/server-side-rendering-comparison
Primary LanguageJavaScript
Program languageJavaScript (Language Count: 4)
PlatformLinux, Windows, FreeNAS
License:
Release Count0
Created At2016-11-23 06:49:06
Pushed At2020-12-02 10:00:51
Last Commit At2020-12-02 18:00:50
Stargazers Count127
Watchers Count11
Fork Count32
Commits Count90
Has Issues Enabled
Issues Count8
Issue Open Count2
Pull Requests Count15
Pull Requests Open Count0
Pull Requests Close Count8
Has Wiki Enabled
Is Archived
Is Fork
Is Locked
Is Mirror
Is Private

Streama Banner

STREAMA

Build Status
Downloads
GitHub license
Discord

Ever had a huge bookshelf full of shows and movies? Ever wanted to digitalize them, but didn't have a good way of organizing the files? Worry no more! Streama is your own personal Netflix for just such a purpose!

Visit the Promo Page
Live Demo
Streama on Google Play store

Live-Demo

https://demo.streamaserver.org/
credentials: username: demoUser, password: demoUser
Feel free to play around there as much as you like (everything is reset at night)
We will keep this demo updated with our newest releases as they come, so that you can check out new features there first before deciding to deploy them in your own environments.


If you want to donate to the developer via bitcoin use 17rCUEX6KYQ8ZM4w39ttEUL7SUDnGCpcWq

Table of contents:

Getting Started

If you have any issues getting started, feel free to chat with us on Discord. We are more than happy to assist and then improve the docs accordingly.

Downloads

  • Stable and beta versions see the GitHub releases

The Application

Settings

Streama Settings Validation

When you first run the application, you will be redirected to the settings page. Here you enter your desired upload directory for the video files, your theMovieDb.org API key and a different base URL if so desired (useful for remote hosting).

Once you made adjustments to any of the settings, make sure to validate the value before saving.

  • For the API-Key, the validation checks against theMovieDb.org to see if you've entered a valid API-key.
  • For the upload directory, the application checks if it has read/write permissions for it.

The Dashboard

Streama Dashboard

On the dashboard, a user can see their recently watched TV-shows and Movies and their progress (they can continue where they left off) as well start new shows and movies that they haven't yet seen. The "Continue Watching" Feature works by periodically updating the database (only while watching, of course!) with info about the currently watched Video and how far it has been seen.

If a Movie or Episode does not contain any video-files, it won't show up in the dashboard.

The Player

Streama Player

The Streama-Player is (heavily) inspired by Netflix, so you get all the good stuff from there. For Shows, there is a "next episode" button and a handy episode/season browser. There are also the basics: volume-control, play/pause, and fullscreen.
Later down the road I will add a feature to add subtitles and switch between video-files (for instance for different quality uploads).
The player is HTML5-based and has only really been tested in Chrome so far.

The Episode Browser

I am especially proud of the Episode-Browser, which aims to function just like on Netflix. By default, the current video files season is selected. The user gets an overview of which other episodes there are in the season, how many seasons there are, and, as an added feature, the user sees all the added episodes, even if no video-files are added to them (thus greyed out).

Streama Episode Browser

The Admin-Panel

Streama Admin

One of the most important things to me was to make managing shows, movies, and episodes as easy and fun as possible. For this, I made heavy use of the API from theMovieDatabase.org, which auto-fills the episodes, shows and movies with useful information and great images. This eases the user's role in adding content.

For example, creating a new TV-show and the episodes for the first season looks something like this:

Streama Creating Show

Uploading video-files for each episode is as easy as drag-and-drop!

Streama Uploading Episode

Accessing existing files

If you want to avoid uploading every file, use our new and improved "Local File" Feature instead. You can define a local directory (I use one directly in which I created symlinks to all my mounted drives) and then you can either use the local file browser for individual movies / tv-Shows or you can use the bulk-create feature.

The local file browser

You can access the local file browser from any movie or TV-show (anywhere where you would otherwise upload a file). Note: You need to first define the local directory in the settings.
Movie Detail
Local File directory

Bulk-Create from File

This MR addresses the issue "Batch Add Files #241".
Note: the TV-Show does not have to be present in order for this to work. Everything will be created by the backend.

Running matcher & previewing the result

sep-02-2017 01-24-34

adding single matched file

sep-02-2017 01-24-12

adding files in bulk

sep-02-2017 01-24-26

Customizing the Matcher

Just like in Emby or Kodi, the matcher-regex can be altered. The two defaults are
Movie: /^(?<Name>.*)[_.]\(\d{4}\).*/
TvShow/Episode: /^(?<Name>.+)[._]S(?<Season>\d{2})E(?<Episode>\d{2,3}).*/

In order to customize the regex, just add the regex in the bottom of the application.yml like so:

streama:
  regex:
    movies: ^(?<Name>.*)[_.]\(\d{4}\).*
    shows: ^(?<Name>.+)[._]S(?<Season>\d{2})E(?<Episode>\d{2,3}).*

The Users

Streama User Management
Users can be invited and managed in the admin panel. By default, they are non-admins, meaning they can only view videos, not create them. You can make them admins with the press of a button. Since there is user-administration in place, I plan on expanding on this a lot! Another feature I want to add is the ability for users to add and administer some form of playlists. There is a lot of potentials to make this even better!

Technical Details

This application is web-based, the server-side is written on Grails 3 with SpringSecurity for login & user-handling. For all the front-end components, AngularJS is used and the player is completely HTML5-based. The application is essentially split into Grails for a REST-API, and AngularJS for the frontend.

Streama uses the awesome API from theMovieDatabase for all media-metadata.

Changelog

Please refer to the description of each release or the git log.

Roadmap

Streama is still very much a work-in-progress. We will be adding new features and bug-fixes often, but this is a hobby project for the core-contributors, so the time that we can spend on it is limited.

For all our feature and bug tracking, we use the Issues Section. Streama's 'roadmap' is currently to work through the feature requests and improvements that are in the issue tracker. Take a look at the milestones for what we intend to add for upcoming releases.

Contributing

Features, Improvements, and Bugfixes

Streama currently only has ~2-3 core-contributors so we are grateful for any extra contributions. Send through a Pull Request and we will review it ASAP.

If you're not sure what to work on, take a look at the issues. There are lots to do!

Translations

If you want to contribute a translation, please follow the guide here.

Known Issues

  • There is no video-conversion currently, meaning you are reliant upon HTML5 browser compatibilities. Server-side conversion is on our roadmap. See Issue #440

License

Streama is distributed under the terms of the MIT license.
See LICENSE.md for details.

To the top