Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/justalittlewolf/lecturedownloader
A server utility written in deno to download lectures streamed with the hls protocol
https://github.com/justalittlewolf/lecturedownloader
Last synced: 3 days ago
JSON representation
A server utility written in deno to download lectures streamed with the hls protocol
- Host: GitHub
- URL: https://github.com/justalittlewolf/lecturedownloader
- Owner: JustAlittleWolf
- Created: 2024-10-11T10:30:56.000Z (3 months ago)
- Default Branch: master
- Last Pushed: 2024-10-21T07:39:34.000Z (3 months ago)
- Last Synced: 2024-11-10T21:38:01.315Z (2 months ago)
- Language: TypeScript
- Homepage:
- Size: 7.81 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Lecture Downloader
This is a server utility written in [deno](https://deno.com/) to automatically
download lectures streamed with the hls protocol.To configure this to your needs, modify the `tasks.json` file:
```json
EXAMPLE
{
"sources": {
"informatics room": "https://live.video.tuwien.ac.at/lt-live/deu116-informatikhoersaal/playlist.m3u8",
"audimax": "https://live.video.tuwien.ac.at/lt-live/bau178a-gm-1-audi-max/playlist.m3u8"
},
"targets": [
{
"name": "my favorite lecture",
"start": {
"weekday": "thursday",
"time": "18:00"
},
"source": "informatics room",
"duration": "2:00"
},
{
"name": "test",
"start": {
"weekday": "monday",
"time": "12:30"
},
"source": "audimax",
"duration": "1:30"
}
],
"outDirectory": "C:/some/directory"
}
```To validate the `tasks.json` file, run `deno run --allow-read validate.ts`
To run the downloader set up a cron job to run
`deno run --allow-read --allow-write --allow-net --allow-run main.ts` once a
day, before the first lecture starts```cron
EXAMPLE cron job
runs every day at 6:55 AM and saves the output in out.log
55 6 * * * cd "PATH-TO-LectureDownloader" && PATH-TO-DENO-EXECUTABLE run --allow-read --allow-write --allow-net --allow-run main.ts --kill-old >> out.log 2>&1 &
```To run the downloader manually in the background on linux, you can use the
`start.sh` scriptTo automatically kill old tasks, run the script with the `--kill-old` argument
To run the downloader manuylly on windows, you can use the `start.bat` script,
although closing the terminal window, will terminate the programOn Windows: **RUNNING THE `main.ts` PROGRAM MULTIPLE TIMES PER DAY WILL BREAK
THINGS**To record a single stream, run
`deno run --allow-read --allow-write --allow-net record.ts `