.. | ||
appsettings | ||
channel | ||
common | ||
config | ||
download | ||
playlist | ||
stats | ||
task | ||
user | ||
video | ||
manage.py | ||
README.md | ||
requirements-dev.txt | ||
requirements.txt |
Django Setup
Apps
The backend is split up into the following apps.
config
Root Django App. Doesn't define any views.
- Has main
settings.py
- Has main
urls.py
responsible for routing to other apps
common
Functionality shared between apps.
Defines views on the root /api/*
path. Has base views to inherit from.
- Connections to ES and Redis
- Searching
- URL parser
- Collection of helper functions
appsettings
Responsible for functionality from the settings pages.
Defines views at /api/appsettings/*
.
- Index setup
- Reindexing
- Snapshots
- Filesystem Scan
- Manual import
channel
Responsible for Channel Indexing functionality.
Defines views at /api/channel/*
path.
download
Implements download functionality with yt-dlp.
Defines views at /api/download/*
.
- Download videos
- Queue management
- Thumbnails
- Subscriptions
playlist
Implements playlist functionality.
Defines views at /api/playlist/*
.
- Index Playlists
- Manual Playlists
stats
Builds aggregations views for the statistics dashboard.
Defines views at /api/stats/*
.
task
Defines tasks for Celery.
Defines views at /api/task/*
.
- Has main
tasks.py
with all shared_task definitions - Has
CustomPeriodicTask
model - Implements apprise notifications links
- Implements schedule functionality
user
Implements user and auth functionality.
Defines views at /api/config/*
.
- Defines custom
Account
model
video
Index functionality for videos.
Defines views at /api/video/*
.
- Index videos
- Index comments
- Index/download subtitles
- Media stream parsing