app | ||
media | ||
static | ||
templates | ||
tools | ||
uploads | ||
utils | ||
videos | ||
.gitignore | ||
.goreleaser.yml | ||
.yamllint.yml | ||
_config.yml | ||
config.json | ||
docker-compose.yml | ||
Dockerfile | ||
go.mod | ||
go.sum | ||
LICENSE | ||
main.go | ||
Makefile | ||
README.md | ||
version.go |
tube
This is a Golang project to build a self hosted "tube"-style video player for watching your own video collection over HTTP or hosting your own channel for others to watch.
Some of the key features include:
- Easy to add videos (just move a file into the folder)
- No database (video info pulled from file metadata)
- No JavaScript (the player UI is entirely HTML)
- Easy to customize CSS and HTML template
- Automatically generates RSS feed (at
/feed.xml
) - Clean, simple, familiar UI
Currently only supports MP4 video files so you may need to re-encode your media to MP4 using something like ffmpeg.
Since all of the video info comes from metadata it's also useful to have a metadata editor such as EasyTAG (which supports attaching images as thumbnails too).
By default the server is configured to run on 127.0.0.1:0 which will assign a random port every time you run it. This is to avoid conflicting with other applications and to ensure privacy. You can configure this to be any specific host:port by editing config.json
before running the server. You can also change the RSS feed details and library path from config.json
.
installation
from release
- Download release for your platform
- Extract zip archive
- Run
tube
executable to start server (this will output the URL for accessing from a browser) - Move videos to
videos
directory - Open the URL from step 3 and enjoy!
from source
- Install Golang if you don't already have it
go get github.com/wybiral/tube
cd $GOPATH/src/github.com/wybiral/tube
go run main.go
(this will output the URL for accessing from a browser)- Move videos to
$GOPATH/src/github.com/wybiral/tube/videos
- Open the URL from step 4 and enjoy!