How codewithcrescent/yt-downloader-web works
This Django application turns supported social-media URLs into downloadable media: a visitor submits a URL, asynchronous work extracts metadata and format choices, the visitor selects a format, and a second task downloads and packages the file for token-based delivery. The repository also tracks visits and supports share links; expired delivery files are purged on a schedule. The graph reflects the sampled views and task code; routes and several subsystems are represented only at the directory level where their implementation was not sampled.
Main entry points: views.py HTTP views · models.py Download records · tasks.py Download task · media_downloader.py Media extractor
Components 16
Web experience
- HTTP views
downloader/views.py - URL routes
downloader/urls.py - Web pages
templates/downloader
Media processing
- Metadata task
downloader/tasks.py - Download task
downloader/tasks.py - Media extractor
downloader/media_downloader.py - Celery broker
State and delivery
- Download records
downloader/models.py - Delivery and purge
downloader/delivery.py - Temporary media files
- Application database
Tracking and cleanup
- Visit tracking
downloader/middleware.py - Share links
downloader/views.py
Other components
- Visitor
- Media platforms
- Redis
Connections 26
- Visitor → URL routes: requests
- URL routes → HTTP views: dispatches
- HTTP views → Web pages: renders
- HTTP views → Metadata task: dispatches metadata
- Metadata task → Media extractor: extracts metadata
- Media extractor → Media platforms: fetches media info
- Metadata task → Download records: saves metadata
- HTTP views → Celery broker: checks task status
- Metadata task → Celery broker: returns result
- HTTP views → Download task: dispatches download
- Download task → Media extractor: downloads media
- Media extractor → Media platforms: downloads media
- Download task → Temporary media files: writes packaged file
- Download task → Download records: updates delivery state
- HTTP views → Celery broker: checks download status
- HTTP views → Download records: reads delivery record
- HTTP views → Temporary media files: streams file
- HTTP views → Share links: creates share link
- Share links → Application database: stores share link
- Download records → Application database: reads and writes
- Visit tracking → Download records: records visits
- HTTP views → Redis: enqueues tasks
- Celery broker → Redis: uses broker
- Download task → Delivery and purge: purges expired files
- Delivery and purge → Download records: clears expired records
- Delivery and purge → Temporary media files: deletes expired files