There are 3 currently-working methods of using this project.
-
Public Website
- No need to setup
- Bandwidth might be limited
- US Content Schedule (Wouldn't get after-midnight replays if you have a San Marino F1TV Access Plan)
Website is accessible at https://f1tv.ieb.systems/, hosted on Deta.sh
Note the 1080p50 is disabled for HLS streams as segements might exceed the 5.5M limit.
-
Reverse Proxy
- Download a single executable
- Use your own connection for content
Download the client for your OS at https://github.com/iebb/F1WebViewer-SelfHosted
Run it locally and it would open a browser, or on a server and open http://[server-ip]:13331/ to watch.
Note the availability of F1TV Access / Pro depends on your server location.
-
Running Locally
- Customize everything
- Requires some technical knowledge
Check the Installation part on the bottom.
Please self host the application locally or through Docker. Or alternatively, use the desktop application. Updates can be found under issue #35 (last updated 2/20/22)
A simple grid-based web viewer for Formula 1. Simply login with your F1TV credentials, select the season, event, and session, and then drag and drop the channels you want to watch into the grid! Unable to install it? No problem! The application can be fully accessed here
- An easy to use grid system to customize your layout
- Ability to drag and drop feeds into the grid
- Ability to pin feeds to prevent them from moving
- Support for syncing feeds (works across multiple tabs)
- Support for multiple layouts
- Support for play/pause all (works across multiple tabs)
- Support for resizing any feed in the layout
- Ability to set the number of columns in the layout
- Ability to set the height for rows in the layout
- Ability to change the audio source and quality for any feed
- Picture in picture support
- Easy to use and modern web interface
- Docker support
- VR support (if using a web browser in VR)
- Syncing across devices on the same local network
Have any suggestions? Let us know!
Clone the repository using git and then use npm to install the node modules.
# Clone the repository
git clone https://github.com/bootsie123/F1-Web-Viewer.git
# Enter the directory
cd F1-Web-Viewer
# Install the dependencies
npm install
# Build the application
npm run build
# Start the server
npm start
Alternatively you can install the application with docker.
docker pull bootsie123/f1-web-viewer
Local
To run the web server simply run:
npm start
This will run the server locally on port 3000
and allow you to connect to it through:
http://localhost:3000
or the IP address of your computer http://192.168.x.x:3000
Docker
To start the web server with Docker simply run:
docker run -d -p 3000:3000 bootsie123/f1-web-viewer
From there, you can then access the server on port 3000
of your Docker host. For example: http://192.168.x.x:3000
Changing the default port
To change the default port of the web server locally you can simply rename the .env.example
file in the main directory of the application to .env
. From there, edit the following:
SERVER_PORT=3000 //Change this value here to the desired port
For Docker, simply start the container with your desired mapped ports. For example, to access the web server from port 8080
use:
docker run -d -p 8080:3000 bootsie123/f1-web-viewer
For login, you need an F1TV account and an active subscription. To login, simply open the sliding panel on the right and enter the same username and password you use for F1TV
During login, your credentials are exchanged with the F1TV servers which in turn give back an access token. This token is stored locally through your browser and is automatically loaded after the first login. However, if this token expires simply logout and relogin
The layout is automatically saved locally to your browser. It will also be loaded automatically when you revisit the application. However, if you clear your browser cache you will loose your layout
Yes! Just click on the clock icon on the feed you want all the other feeds to sync up to. It will also sync across multiple tabs too
Special thanks to: SoMuchForSubtlety (F1 Viewer) and robvdpol (RaceControl) for giving me a framework to work with and mapping out the F1TV API!
Other thanks to:
- Video.js - For the awesome to work with video player
- Vue Grid Layout - For making the amazing grid layout system
- Remixicon - For all of the amazing icons used through the project
Pull requests are welcome. Any changes are appreciated!