How tzahi12345/youtubedl-material works
YoutubeDL-Material is a browser-based YouTube/video downloader and media manager: users submit a URL, the server runs a download, and users manage or retrieve the resulting files. The Angular frontend also exposes subscriptions, scheduled tasks, archives, playlists, Twitch chat, authentication, settings, and notifications. The backend is organized around an Express API, feature services, and a database abstraction. Edges reflect the shown excerpts, SOURCE INDEX references, or README; links whose runtime wiring is not shown are omitted or marked unverified.
Main entry points: app.js Express API · db.js Database · tasks.js Scheduled tasks · subscriptions.js Subscriptions
Components 21
Web frontend
- Download screen
src/app/main/main.component.ts - Download manager
src/app/components/downloads/downloads.component.ts - Media player
src/app/player/player.component.ts - Media management UI
src/app - API client
src/app/posts.services.ts - API types
src/api-types
API and downloads
- Express API
backend/app.js - Download execution
backend/downloader.js - youtube-dl integration
backend/youtube-dl.js
Media features
- File management
backend/files.js - Subscriptions
backend/subscriptions.js - Scheduled tasks
backend/tasks.js - Archives
backend/archive.js - Categories
backend/categories.js - Twitch support
backend/twitch.js - Notifications
backend/notifications.js
Backend foundations
- Authentication
backend/authentication/auth.js - Database
backend/db.js - Configuration
backend/config.js - Logging
backend/logger.js
Other components
- User
Connections 35
- User → Download screen: submits URL
- Download screen → API client: requests downloads
src/app/main/main.component.ts - Download screen → API client: loads config
src/app/main/main.component.ts - Download screen → Download manager: manages downloads
- Download screen → Media player: opens media
- API client → API types: uses types
src/app/posts.services.ts - API client → Express API: sends HTTP requests
- Express API → Download execution: dispatches downloads
backend/app.js - Express API → Authentication: uses authentication
backend/app.js - Express API → Database: reads records
backend/app.js - Express API → File management: delegates file actions
backend/app.js - Express API → Subscriptions: delegates subscription actions
backend/app.js - Express API → Scheduled tasks: uses task services
backend/app.js - Express API → Categories: uses category services
backend/app.js - Express API → Twitch support: uses Twitch services
backend/app.js - Express API → youtube-dl integration: uses download integration
backend/app.js - Express API → Archives: uses archive services
backend/app.js - Express API → Notifications: uses notifications
backend/app.js - Download execution → youtube-dl integration: uses integration
- File management → Database: reads and writes
backend/files.js - File management → Archives: uses archive services
backend/files.js - Subscriptions → Download execution: uses download service
backend/subscriptions.js - Subscriptions → youtube-dl integration: uses integration
backend/subscriptions.js - Subscriptions → Archives: uses archive services
backend/subscriptions.js - Subscriptions → Database: reads and writes
backend/subscriptions.js - Scheduled tasks → Subscriptions: runs subscription tasks
backend/tasks.js - Scheduled tasks → File management: checks file records
backend/tasks.js - Scheduled tasks → Archives: uses archive services
backend/tasks.js - Scheduled tasks → Notifications: uses notifications
backend/tasks.js - Scheduled tasks → Database: reads and updates tasks
backend/tasks.js - Notifications → Database: uses records
backend/notifications.js - Authentication → Database: reads and updates users
backend/authentication/auth.js - Configuration → Logging: logs errors
backend/config.js - Database → Configuration: uses configuration
backend/db.js - Database → Logging: logs operations
backend/db.js