Offline Video Player is an Express MVC application for watching many short videos in sequence, comfortably. It tracks progress and lets you export/import it as a portable JSON file.
- Simple and fast
- Progress is automatically tracked
- Import/export progress as a JSON file
- Set playback rate up to 4.00x
- Manually bookmark specific videos (only one video can be bookmarked at a time)
- Previous and Next buttons
- List showing watched and to watch videos
- Progress bar
Offline Video Player is admittedly a specific solution to a specific problem, so it strives for ease of use, ease of development and tries to provide as few features as needed. For this reason, there's a number of shortcuts and known limitations to it
- It only works with
.mp4
files - Changing any
.mp4
file in the/videos
folder could disrupt the saved progress - Initial build of the cache can take from a few seconds up to several minutes depending on your machine and the number of videos; however, this should only happens once, the first time you run the app
- Saved progress as well as cache is persisted as JSON files, no database involved
- Being served locally, some best practices were skipped, i.e.: most operations are synchronous
- Zero builds: frontend is not minified, backend only implements the basic CommonJS syntax
- Node.js version 12+ installed, Download here
-
Install
git clone https://github.com/alaindet/offline-video-player.git cd offline-video-player npm install
-
Move your
.mp4
video files into the/videos
folder -
Start
npm start
You can pass options to npm start
, for example
npm start -- --port=4242
Options are
--open
(Default:true
) Opens the browser as soon as the app starts--port
(Default3000
) The port to serve the app on--force-cache
(Defaultfalse
) Forces to rebuild the videos cache file--force-tracking
(Defaultfalse
) Forces to rebuild and reset the videos tracking
npm run start
The default command to start the appnpm run build-cache
Reset (if needed) and build the videos cache filenpm run build-tracking
Reset (if needed) and build the videos tracking featurenpm run reset
Reset all generated files (WARNING: Deletes progress)