You can follow the old xTeVe documentation for now until I update it for Threadfin. Documentation for setup and configuration is here.
- Plex Media Server (1.11.1.4730 or newer)
- Plex Client with DVR support
- Plex Pass
- Emby Server (3.5.3.0 or newer)
- Emby Client with Live-TV support
- Emby Premiere
- Jellyfin Server (10.7.1 or newer)
- Jellyfin Client with Live-TV support
- New Bootstrap based UI
- RAM based buffer instead of File based
- HTTPS Webserver
- Can now add a starting channel number for the filter group
- Can now multi select Bulk Edit by holding shift
- Now has a separate table for inactive channels
- Can add 3 backup channels for an active channel (backup channels do NOT have to be active)
- Alpha Numeric sorting now sorts correctly
- Can now add a starting channel number for Bulk Edit to renumber multiple channels at a time
- PPV channels can now map the channel name to an EPG
- Removed old Threadfin buffer option, since FFMPEG/VLC will always be a better solution
- Merge external M3U files
- Merge external XMLTV files
- Automatic M3U and XMLTV update
- M3U and XMLTV export
- Filtering streams
- Channel mapping
- Channel order
- Channel logos
- Channel categories
- Buffer with HLS / M3U8 support
- Re-streaming
- Number of tuners adjustable
- Compatible with Plex / Emby / Jellyfin EPG
These are the currently available command line arguments:
arg | type | description | example |
---|---|---|---|
-h | bool | prints the help and don't start the service | -h |
-dev | bool | activates the developer mode | -dev |
-config | string | sets the path to the root config folder | -config=~./.threadfin |
-port | integer | sets the port for the webserver (also for https) | -port=34400 |
-useHttps | bool | switches the webserver to https | -useHttps |
-restore | string | restores the settings from the given filepath | -restore=/path/to/file/threadfin_backup.zip |
-gitBranch | string | sets the branch from which the program is to be updated | -gitBranch=beta |
-debug | integer | sets the debug level | -debug=3 |
-info | bool | prints the system info | -info |
- Docker compose example
version: "2.3"
services:
threadfin:
image: mgoerentz/threadfin
container_name: threadfin
ports:
- 34400:34400
environment:
- PUID=1001
- PGID=1001
- TZ=America/Los_Angeles
volumes:
- ./data/conf:/home/threadfin/conf
- ./data/temp:/tmp/threadfin:rw
restart: unless-stopped
New features and bug fixes are only available in beta branch. Only after successful testing they are merged into the main branch.
It is not recommended to use the beta version in a production system.
With the command line argument branch
the Git Branch can be changed. Threadfin must be started via the terminal.
threadfin -branch=beta
...
[Threadfin] GitHub: https://github.com/Threadfin/Threadfin
[Threadfin] Git Branch: beta [Threadfin]
...
threadfin -branch=main
...
[Threadfin] GitHub: https://github.com/Threadfin/Threadfin
[Threadfin] Git Branch: main [Threadfin]
...
When the branch is changed, an update is only performed if there is a new version and the update function is activated in the settings.
- Go (go1.18 or newer)
- Download source code
- Install dependencies
go mod tidy && go mod vendor
- Build Threadfin
go build threadfin.go
- Update web files (optional)
If TypeScript files were changed, run:
tsc -p ./ts/tsconfig.json
Then, to embed updated JavaScript files into the source code (src/webUI.go), run it in development mode at least once:
go build threadfin.go
threadfin -dev
When creating a fork, the Threadfin GitHub account must be changed from the source code or the update function disabled. Future updates of Threadfin would update your fork.
threadfin.go - Line: 29
var GitHub = GitHubStruct{Branch: "main", User: "Threadfin", Repo: "Threadfin", Update: true}
/*
Branch: GitHub Branch
User: GitHub Username
Repo: GitHub Repository
Update: Automatic updates from the GitHub repository [true|false]
*/