Comments (6)
First attempt at implementing the new API:
79f5e50
To be continued soon.
from racecontrol.
Will close this issue now, basic support for new API has been implemented. Still need to focus on race archive and video on demand archive.
from racecontrol.
I've been capturing the website traffic for a bit, but unfortunately it seems that the API has changed significantly (also from a security point of view). I'm afraid this will require a complete rewrite of the API interface. I've also noticed that the Android app (which was updated 2 days ago) is still using the old API.
Please feel free to add any info about the API you may have discovered.
from racecontrol.
Some initial findings:
GET
https://f1tv.formula1.com/1.0/R/ENG/WEB_HLS/ALL/CONTENT/PLAY?contentId=1000001393
(requires some additional HTTP headers such as correlationid, sessionid, ascendontoken, entitlementtoken and cookie)
Returns JSON that contains a tokenized stream URL that is playable with VLC / MPV.
{
"resultCode": "OK",
"message": "200",
"errorDescription": "200",
"resultObj": {
"entitlementToken": "eyJhbGciOiJIU....(shortened)....TGRmtYVM",
"url": "https://f1prodvod.akamaized.net/f1vodprod/625/768/1598810310384/2007_Belgium_RaceHighlights_7min_F1TV-563295813107-master.m3u8?hdnea=st=1615022128~exp=1615022428~acl=/f1vodprod/625/768/1598810310384/*~hmac=f67e55f865134312824e0585ff471ba87d1076d99ce620a72cec8effbf8be0e5",
"streamType": "HLS"
},
"systemTime": 1615022128593
}
from racecontrol.
For reference, they're using the Bitmovin Player on the new site, which is how they've gotten Chromecast support "for free". If you look at the Bitmovin example page, it's the same design for the "Playing on _____" screen.
I'm not sure if their documentation can provide any more hints on the video playback authentication. Knowing what technology the player uses could also be a start towards seeing if anyone else has worked with it before.
from racecontrol.
The login form on the F1TV-website still uses the same old authenticate-URL (https://api.formula1.com/v2/account/subscriber/authenticate/by-password). This returns a subscription token that can be used to obtain an entitlement token:
GET
https://f1tv.formula1.com/1.0/R/ENG/WEB_DASH/ALL/USER/ENTITLEMENT
ascendontoken: (put subscriptiontoken here)
Response:
{
"resultCode": "OK",
"message": "Entitlement check successful",
"errorDescription": "200",
"resultObj": {
"entitlementToken": "eyJhbGciOiJIUz....(shortened)....AvUogLkrkBQV4"
},
"systemTime": 1615037247215
}
Not sure yet what the entitlement token is needed for.
from racecontrol.
Related Issues (20)
- [FEATURE] HOT 2
- HOW TO WATCH MIAMI GP! LOOK HERE FOR FIX! HOT 2
- It's not possible to watch the Spanish grand prix. All others are ok, just the spanish is not working. In F1TV i can watch the race.[BUG] HOT 2
- Can't start Race Control anymore [BUG] HOT 3
- [BUG] Internal player stutters above approx 12 streams HOT 3
- [BUG] Value cannot be a null. (Parameter 'Source') HOT 2
- Prevent sleep when downloading a video HOT 1
- [BUG] Live video streaming doesn't show HOT 3
- [BUG] Request resource doesn't contain a valid scheme for an empty base URL of the client (Parameter 'request') HOT 1
- [BUG] Unexpected error VideaoDialog HOT 1
- [FEATURE] Closed caption / subtitle support
- [BUG] Internal player and MPV video stutters, VLC plays fine HOT 1
- [FEATURE] Multi-connection downloads of sessions
- Error Downloading Video
- [BUG] Error 'Exception of type System.Exception' when logging in to F1TV dialog HOT 1
- Add Olalf Mol as extra language Dutch2[FEATURE]
- [FEATURE] Download queue HOT 1
- [FEATURE] Export live sessions to M3U playlist
- Server returned 401[BUG]
- [BUG] No races loading for seasons before 2018
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from racecontrol.