53 lines
1.7 KiB
Markdown
53 lines
1.7 KiB
Markdown
# Ucast
|
|
|
|
Der Ucast-Server bietet dem Nutzer die Möglichkeit, YouTube-Videos (z.B. News, Kommentare)
|
|
einfach unterwegs oder z.B. während der Arbeit zu konsumieren. Dafür kann er Videos ausgewählter
|
|
Kanäle automatisch als MP3 herunterladen und als Podcast-Feed bereitstellen.
|
|
|
|
## Funktionsweise
|
|
|
|
Der Nutzer soll über eine Weboberfläche YouTube-Kanäle abonnieren können.
|
|
Wenn diese Kanäle ein neues Video veröffentlichen, sollte der Server dieses Video
|
|
automatisch herunterladen und ins MP3-Format konvertieren. Für jeden abonnierten
|
|
Kanal soll der Server einen RSS-Feed bereitstellen, den man mit einen Podcast-Client
|
|
abrufen kann.
|
|
|
|
## Technik
|
|
|
|
Der Server sollte mit dem Webframework [Django](https://djangoproject.com/)
|
|
realisiert werden.
|
|
|
|
Die Weboberfläche wird mit Jinja-Templates gerendert, auf ein JS-Framework kann vorerst verzichtet werden.
|
|
Für ein ansehnliches Ansehen sorgt Bootstrap.
|
|
|
|
## Entwicklung
|
|
|
|
### Project aufsetzen
|
|
|
|
1. Python3 + Node.js + [Poetry](https://python-poetry.org/) dependency manager +
|
|
[pnpm](https://pnpm.io/) installieren
|
|
2. Python-Dependencies mit ``poetry install`` installieren
|
|
3. Node-Dependencies mit ``pnpm i`` installerien
|
|
|
|
### Tasks (Python)
|
|
|
|
Ausführen: `invoke <taskname>`
|
|
|
|
`test` Unittests ausführen
|
|
|
|
`lint` Codequalität/Formatierung überprüfen
|
|
|
|
`format` Code mit black formatieren
|
|
|
|
`makemigrations` Datenbankmigration erstellen
|
|
|
|
`get-cover --vid <YouTube-Video-ID>` YouTube-Thumbnail herunterladen
|
|
und Coverbilder zum Testen erzeugen (werden unter `ucast/tests/testfiles` abgelegt)
|
|
|
|
### Tasks (Node.js)
|
|
|
|
Ausführen: `npm run <taskname>`
|
|
|
|
`start` Sass-Stylesheets automatisch bei Änderungen kompilieren
|
|
|
|
`build` Sass-Stylesheets kompilieren und optimieren
|