A hassle free solution for watching and syncing videos you own amongst your friends!
- π€ EZ to setup with a single command!
- π Subtitles support for those foreign film nights!
- π±Mobile support!
- π‘οΈ No complicated user management system. Jut use a generated unique URL.
- You will need NodeJS
- ffmpeg and ffprobe binary located in PATH.
npm install # only need to run once.
node index.js --root <path_to_videos_folder>
A lookup table of all *.mp4
that can be recursively found in the root folder will execute.
This can take a bit of time.
Your root should contain various mp4 videos.
Subtitles can be optionally registered, in the same folder, by having the same name as the .mp4
but with .vtt
extension.
MKV supprt is coming soon (see Future Goals) but until then, you will need to manually convert.
To contribute to the code, ensure that your tests are passing before submitting a PR. To run a test, use the following:
npm test
ffmpeg
is the standard for video utilities and our tools requires this installation, ensure the tool is in your PATH.
Most Linux distributions have an apppropriate single line call to install this library.
Windows can be a bit more involved, however, you can find tutorials online.
We use node-fluent-ffmpeg under-the-hood.
You can use the variables FFMPEG_PATH
and FFPROBE_PATH
instead of PATH
to point to your binary.
A couple of things to verify:
- Ensure your server has port (8080) forwarding on the router (if hosting at home.)
- Ensure you are passing in a
token
in the URL. - Ensure that your firewall allows port 8080.
- Ensure you don't have another program using port 8080.
If your library is very large, it can take a while to generate a video_library.json
cache file which caches video metadata.
The original purpose of this tool was to support a small to medium sized library. Consider pointing your root to a sub-folder for a single session.
If there is interest in supporting larger video libraries, please file an issue.
- Support simple MKV with h.246 and subtitles.
- Support fancier subtitle interactions.
- Make
video_library.json
generation more efficient.