|
|
||
|---|---|---|
| assets | ||
| deploy | ||
| docs | ||
| notes | ||
| ucast | ||
| ucast_project | ||
| .bumpversion.cfg | ||
| .dockerignore | ||
| .drone.yml | ||
| .editorconfig | ||
| .env.example | ||
| .gitignore | ||
| .pre-commit-config.yaml | ||
| LICENSE | ||
| manage.py | ||
| package-lock.json | ||
| package.json | ||
| poetry.lock | ||
| pyproject.toml | ||
| README.md | ||
| tasks.py | ||
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 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
- Python3 + Node.js + Poetry dependency manager + pnpm installieren
- Python-Dependencies mit
poetry installinstallieren - Node-Dependencies mit
pnpm iinstallerien
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