Skip to content

Commit

Permalink
Merge pull request #3 from Simon-Eklundh/master
Browse files Browse the repository at this point in the history
improved readme?
  • Loading branch information
fredrikburmester authored Oct 7, 2024
2 parents f32af6b + 75a165e commit c26af72
Showing 1 changed file with 38 additions and 11 deletions.
49 changes: 38 additions & 11 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,13 +3,49 @@
## About

Optimized versions is a transcoding server (henceforth refered to as _the server_). It acts as a middleman between the Jellyfin server and the client (Stremyfin app) when downloading content. The job of the server is to combine an HLS stream into a single video file which in turn enables better and more stable downloads in the app. Streamyfin can then also utilize background downloads, which means that the app does not need to be open for the content to download.
Optimized versions is a transcoding server (henceforth refered to as _the server_). It acts as a middleman between the Jellyfin server and the client (Streamyfin app) when downloading content. The job of the server is to combine an HLS stream into a single video file which in turn enables better and more stable downloads in the app. Streamyfin can then also utilize background downloads, which means that the app does not need to be open for the content to download.

The download in the app becomed a 2 step process.

1. Optimize
2. Download

## Usage

Note: The server works best if it's on the same server as the Jellyfin server.

### Docker-compose

#### Docker-compose example

```yaml
services:
app:
image: fredrikburmester/streamyfin-optimized-versions-server:master
ports:
- '3000:3000'
env_file:
- .env
environment:
- NODE_ENV=development
restart: unless-stopped

# If you want to use a local volume for the cache, uncomment the following lines:
# volumes:
# - ./cache:/usr/src/app/cache
```

Create a .env file following the example below or by copying the .env.example file from this repository.

#### .env example

```bash
JELLYFIN_URL=http://your-jellyfin-url
# MAX_CONCURRENT_JOBS=1 # OPTIONAL default is 1
```

## How it works

### 1. Optimize

A POST request is made to the server with the HLS stream URL. The server will then start a job, downloading the HLS stream to the server, and convert it to a single file.
Expand All @@ -22,15 +58,6 @@ As soon as the server is finished with the conversion the app (if open) will sta

This means that the user needs to 1. initiate the download, and 2. open the app once before download.

## Install

The server works best if it's on the same server as the Jellyfin server.

1. Create `.env` file by running `cp .env.example .env`
3. Fill in all enviroment variables
4. Run `docker compose up -d --build`
5. Set the domain and auth token in the app settings.

## Other

This server can work with other clients and is not limited to only using the Streamyfin client. Though support needs to be added to the clients by the maintainer.
This server can work with other clients and is not limited to only using the Streamyfin client. Though support needs to be added to the clients by the maintainer.

0 comments on commit c26af72

Please sign in to comment.