-
๐ญ Iโm currently working on Exchange-LetsEncrypt
-
๐ฌ Ask me about Powershell, Bash, Docker
Play live content from F1TV with any RTMP Player
๐ญ Iโm currently working on Exchange-LetsEncrypt
๐ฌ Ask me about Powershell, Bash, Docker
Hi!
First of all: thanks for sharing! Really appreciating!
As for the HLS streaming, is the /app/entrypoint-last.sh
committed somewhere?
https://github.com/SeniorHeld/f1tv-rtmp/blob/main/Dockerfile-hls#L21
Thanks!
Hey!
Love the project! I can however not read the stream, both from ffmpeg and VLC:
[NULL @ 0x55e0d2235c40] Opening 'rtmp://redact.ed/live/f1tv' for reading
[rtmp @ 0x55e0d2236660] No default whitelist set
[tcp @ 0x55e0d2236e60] No default whitelist set
[rtmp @ 0x55e0d2236660] Handshaking...
[rtmp @ 0x55e0d2236660] Type answer 3
[rtmp @ 0x55e0d2236660] Server version 13.14.10.13
[rtmp @ 0x55e0d2236660] Proto = rtmp, path = /live/f1tv, app = live, fname = f1tv
[rtmp @ 0x55e0d2236660] Window acknowledgement size = 5000000
[rtmp @ 0x55e0d2236660] Max sent, unacked = 5000000
[rtmp @ 0x55e0d2236660] New incoming chunk size = 4096
[rtmp @ 0x55e0d2236660] Creating stream...
[rtmp @ 0x55e0d2236660] Sending play command for 'f1tv'
[rtmp @ 0x55e0d2236660] Deleting stream...
I use a docker-compose file for running the container:
version: "3"
services:
f1tv:
container_name: f1tv
image: htobi02/f1tv:latest
ports:
- "1935:1935/tcp"
environment:
F1TV_EMAIL: '********'
F1TV_PASSWORD: ''********'
LANGUAGE: 'eng'
LIVE: 'true'
RECORD: 'false'
volumes:
- '/data/docker/f1tv/record/:/record'
restart: unless-stopped
I only get the following lines after canceling the 'Sending play command':
f1tv | 159.69.27.108 [11/Mar/2022:15:25:16 +0100] PLAY "live" "f1tv" "" - 380 436 "" "LNX 9,0,124,2" (4s)
f1tv | /app/f1tv.sh: line 43: [[: https://ott-video-cf.formula1.com/f7xxxxc8cf81ac81/out/v1/0b7a9xxxx6d09d38cc9c/index.m3u8?kid=1042&exp=1647095117&ttl=1440&token=xxxxxxxx&start=2022-03-11T11:55:03+00:00: syntax error in expression (error token is "://ott-video-cf.formula1.com/f7xxxxc8cf81ac81/out/v1/0b7a9xxxxc6d09d38cc9c/index.m3u8?kid=1042&exp=1647095117&ttl=1440&token=xxxxxxxx&start=2022-03-11T11:55:03+00:00")
Edit: Using your provided dockerfile (with a slight tweak ; dutch instead of german):
f1tv-en_1 | ERROR: URL is null. Maybe there is no live stream?
f1tv-nl_1 | ERROR: URL is null. Maybe there is no live stream?
f1tv-fx_1 | ERROR: URL is null. Maybe there is no live stream?
Hi! Unfortunately, got another problem:
Are you running into this as well? Connecting with a browser from the same IP results in another error (which is understandable):
{"fault":{"faultstring":"Failed to resolve API Key variable request.header.apikey","detail":{"errorcode":"steps.oauth.v2.FailedToResolveAPIKey"}}}
/etc/docker# curl -s --request POST --url https://api.formula1.com/v2/account/subscriber/authenticate/by-password --header 'Content-Type: application/json' --header 'User-Agent: RaceControl' --header 'apiKey: fCUCjWrKPu9ylJwRAv8BpGLEgiAuThx7' --data "$DATA"
<!DOCTYPE html>
<html>
<head>
<noscript>
<title>Pardon Our Interruption</title>
</noscript>
<meta name="viewport" content="width=1000">
<meta name="robots" content="noindex, nofollow">
<meta http-equiv="cache-control" content="no-cache, no-store, must-revalidate">
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="expires" content="0">
<style>
.container { max-width: 800px; margin: auto; font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; color: #7a838c; }
h1 { color: #2a2d30; font-weight: 500; }
li { margin: 0 0 10px; }
a { color: #428bca; }
a:hover, a:focus { color: #2a6496; }
</style>
<script>
function showBlockPage() {
document.title = "Pardon Our Interruption"
document.getElementsByClassName("container")[0].style.display = "block";
}
setTimeout(showBlockPage, 10000);
// Language configuration for captcha. See each specific captcha provider for which
// languages are supported
// window.geetestLang = "en";
// window.recaptchaLang = "en";
</script>
<!-- This head template should be placed before the following script tag that loads the challenge script -->
<script>window.addEventListener('load', showBlockPage)</script>
<script type="text/javascript" src="/6657193977244c13" async defer></script>
</head>
<body>
<div class="container">
<script>document.getElementsByClassName("container")[0].style.display = "none";</script>
<h1>Pardon Our Interruption</h1>
<p>As you were browsing something about your browser made us think you were a bot. There are a few reasons this might happen:</p>
<ul>
<noscript><li>You've disabled JavaScript in your web browser.</li></noscript>
<li>You're a power user moving through this website with super-human speed.</li>
<li>You've disabled cookies in your web browser.</li>
<li>A third-party browser plugin, such as Ghostery or NoScript, is preventing JavaScript from running. Additional information is available in this <a title='Third party browser plugins that block javascript' href='https://help.distilnetworks.com/hc/en-us/articles/212154438-Third-Party-Browser-Plugins-That-Block-JavaScript' target='_blank'>support article</a>.</li>
</ul>
<!-- These paragraphs are displayed depending on if an identify or captcha page is returned -->
<p id="identify-msg" style="display: none">To regain access, please make sure that cookies and JavaScript are enabled before reloading the page.</p>
<p id="captcha-msg" style="display: none">After completing the CAPTCHA below, you will immediately regain access to the site again.</p>
<p id="extraUnblock"><small style="font-size: 8pt">IP: x.x.x.x</small></p>`
</div>
</body>
</html>
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.