# 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 ` `test` Unittests ausführen `lint` Codequalität/Formatierung überprüfen `format` Code mit black formatieren `makemigrations` Datenbankmigration erstellen `get-cover --vid ` YouTube-Thumbnail herunterladen und Coverbilder zum Testen erzeugen (werden unter `ucast/tests/testfiles` abgelegt) ### Tasks (Node.js) Ausführen: `npm run ` `start` Sass-Stylesheets automatisch bei Änderungen kompilieren `build` Sass-Stylesheets kompilieren und optimieren