/tum-live-recorder

Mit diesen Bash-Skripten kann der aktuell laufende Livestream von live.rbg.tum.de lokal aufgezeichnet werden

Primary LanguageShell

tum-live-recorder

Mit diesen Bash-Skripten kann der aktuell laufende Livestream aus den MW0001/MW2001 Hörsälen von live.rbg.tum.de lokal aufgezeichnet werden.
Für andere Hörsäle und/oder Perspektiven kann das URL_REGEX in _saveCurrentStream.sh abgeändert werden.

VORAUSSETZUNGEN:

  • ffmpeg muss installiert sein
    • macOS mit Homebrew: $ brew install ffmpeg
    • Linux: $ sudo apt install ffmpeg bzw. $ brew install ffmpeg
  • NUR macOS: gdate (GNU date) muss installiert sein (nur notwendig für record.sh Skript)
    • mit Homebrew: $ brew install coreutils (für macOS-User, die noch kein Homebrew installiert haben —> https://brew.sh)

Eventuell müssen die Skripte noch ausführbar gemacht werden, indem in den Ordner (in der diese Datei liegt) navigiert und $ chmod +x *.sh ausgeführt wird.

BEISPIELE:

  • $ ./record.sh now
    Startet die Aufnahme sofort und speichert die Datei unter ./saved/YYYY-MM-DD.mp4

  • $ ./record.sh "tomorrow 08:30"
    Wartet bis zum nächsten Tag um 08:30 Uhr und startet dann die Aufnahme

  • $ ./record.sh 13:30
    Wartet bis um 13:30 Uhr (am selben Tag) und startet dann die Aufnahme

  • $ ./record.sh "wed 8:15"
    Wartet bis zum nächsten Mittwoch um 08:30 Uhr und startet dann die Aufnahme

  • $ ./record.sh 10min LA
    Wartet 10 Minuten, startet dann die Aufnahme und speichert die Datei unter ./saved/LA.mp4 (oder ./saved/LA_2.mp4 falls die Datei schon existiert)

Der Ausgabe-Ordner ist standardmäßig ./saved, dieser kann aber über OUTPUT_DIR in record.sh angepasst werden.

Die Aufnahme stoppt automatisch, wenn der Stream beendet wird oder nach spätestens 3 Stunden (konfigurierbar in _saveCurrentStream.sh). Um die Aufnahme manuell zu beenden, einfach mit CTRL-C einen Interrupt schicken.
ACHTUNG: nur EINMAL (nicht mehrfach!) CTRL-C drücken und warten bis ffmpeg sich beendet! Andernfalls kann der Header der MP4-Datei beschädigt und die Datei damit nicht abgespielt werden!

Unter macOS geht der Computer zudem nicht in den Ruhezustand während das Skript läuft (Bildschirmruhezustand wird nicht beeinflusst).

Wer den tum-live-recorder in einem eigenen Skript/Programm einbauen will oder das Planen von Aufzeichnungen lieber Cron überlassen will, kann dies einfach mit Hilfe des _saveCurrentStream.sh Skriptes machen.

tum-live-recorder (english)

These Bash-Skripts may be used to record the currently available livestreams of MW0001/MW2001 at live.rbg.tum.de locally. To record different rooms or video feeds the property URL_REGEX in _saveCurrentStream.sh may be changed.

Requirements:

  • ffmpeg has to be installed
    • macOS using Homebrew: $ brew install ffmpeg
    • Linux: $ sudo apt install ffmpeg or $ brew install ffmpeg
  • ONLY macOS: gdate (GNU date) has to be installed (only needed for record.sh script)
    • using Homebrew: $ brew install coreutils (to macOS-Users, who do not have Homebrew yet —> https://brew.sh)

To allow execution of the scripts, you may need to navigate inside the folder (containing this file) and execute $ chmod +x *.sh

Example calls:

  • $ ./record.sh now
    Immediatly start recoding and save to ./saved/YYYY-MM-DD.mp4

  • $ ./record.sh "tomorrow 08:30"
    Wait until 08:30 AM tomorrow to start recording

  • $ ./record.sh 13:30
    Wait until 01:30 PM (on the same day) to start recoding

  • $ ./record.sh "wed 8:15"
    Wait until the next wednesdas 08:30 AM to start recording

  • $ ./record.sh 10min LA
    Wait for 10 minutes to start recodring and save to ./saved/LA.mp4 (or ./saved/LA_2.mp4 if already exists)

The output folder is ./saved by default. May be changed using the parameter OUTPUT_DIR in record.sh.

Recording stops if the stream ends or after 3 hours (delay defined in _saveCurrentStream.sh). To manually stop recording use CTRL-C once to interrupt the program.
ATTENTION: only press CTRL-C ONCE (not multiple times!) and wait until ffmpeg terminates! Interrupting ffmpeg may cause damage to the header of the MP4 file and prevent it from being played!

MacOS is prevented from sleeping while the script is running (screensaver not influenced).

If you want to integrate the tum-live-recorder into your own script/program or you rather want to leave the scheduling job to Cron, you can simply do that by using the _saveCurrentStream.sh script!