restructure + first tests
Some checks failed
CI/CD Pipeline / test (push) Failing after 3m23s
CI/CD Pipeline / deploy (push) Has been skipped

This commit is contained in:
Philipp Hofer
2025-10-29 11:30:16 +01:00
parent e1e21f8837
commit 1cab4d0bf5
9 changed files with 212 additions and 90 deletions

19
README.md Normal file
View File

@@ -0,0 +1,19 @@
# Plöyer (Ö1 player)
Creates an RSS Feed for some Ö1 journals.
## Motivation
This project started because of a simple goal: I wanted to listen to a few Ö1 episodes regularly. I had 2 requirements:
1. Be able to live-stream (even if I want to start a few minutes after the episode has started).
2. Track the progress to be able to continue later.
[ORF already provides a similar](https://sound.orf.at/podcast/oe1/oe1-journale), but it creates the entry only ~15 minutes AFTER the episodes has ended. Thus, if it's 7:10 and I want to listen to e.g. `Morgenjournal` which starts at 7, I can't do that with the ORF feed.
Another option is to use [the live player](https://oe1.orf.at/player/live). There seems to be an issue when I start playing the 7 am episode at 7:10; then (at least in October '25 and on my smartphone) it stops at 7:20 and I can only listen again if I refresh the page, but then I lose the current playtime and I have to seek to the time where I have been. Furthermore, if I only manage to listen to e.g. half the episode, chances are high that the time is not stored, because I refresh the page et al.
I tried a bunch of different options (webplayer + official feed; streaming the episodes to a mp3 file on my server, then serving this file; just redirecting to current episode, letting default webbrowser mp3 player handle everything; writing my own javascript player; using existing javascript player library to consistently stream the episodes) over some months. This project is what I've eventually landed on, it's quite stable for a few months (starting in September '25). It creates an RSS "Podcast" feed, which I consume on my phone with AntennaPod.
## Data
In `https://audioapi.orf.at/oe1/api/json/current/broadcasts` you can find the broadcasts for the last 7 days---including the current day. Each broadcast has a `href` url attached. If you query this url, you can find details about this broadcast, e.g. under `streams` there's a `loopStreamId`. You can stream your episode from this url `https://loopstream01.apa.at/?channel=oe1&shoutcast=0&id={id}`.