wetvlo
v0.0.24
Published
CLI application for monitoring and downloading TV series episodes from Chinese video sites (wetv.vip, iq.com)
Maintainers
Readme
wetvlo
wetvlo is a powerful CLI application for automatically monitoring and downloading TV series episodes from popular Asian streaming platforms (WeTV, iQIYI, MGTV).
🚀 Features
- Automatic Monitoring: Checks for new episodes at scheduled times.
- Smart Queue: Sequential downloading and checking to prevent IP bans and ensure stability.
- Platform Support: Built-in support for WeTV, iQIYI, and MGTV.
- Reliability: Retry system with exponential backoff for network errors.
- Notifications: Telegram integration for error alerts.
- Flexible Configuration: Per-series, per-domain, or global settings.
- History: Tracks downloaded episodes to prevent duplicates.
📋 Requirements
🛠 Installation
Clone the repository:
git clone https://github.com/your-username/wetvlo.git cd wetvloInstall dependencies:
bun install
⚙️ Configuration
Create a configuration file by copying the example:
cp config.example.yaml config.yamlEdit
config.yamlto suit your needs. Main sections:- series: List of series to monitor (highest priority).
- domainConfigs: Settings for specific sites (e.g., delays for WeTV).
- globalConfig: Global default settings.
- telegram: Bot settings for notifications (optional, inside globalConfig).
Example series configuration:
series: - name: "Series Name" url: "https://wetv.vip/play/series-id" startTime: "20:00" # Check start time (HH:MM) download: maxRetries: 5 # Number of retry attempts on failure
▶️ Usage
Development Mode
Run with default configuration (./config.yaml):
bun startRun in single-pass mode (check once and exit without waiting for schedule):
bun start:onceBuild and Run (Production)
Build the project into a single file:
bun run buildRun the built file:
bun dist/index.js
# or with a custom config
bun dist/index.js --config ./my-config.yaml🧪 Development
Testing
Run all tests:
bun testLinting and Formatting
Check code style:
bun run lintFormat code:
bun run format🏗 Architecture
The application is built on a task queue (QueueManager) that manages update checks and downloads.
- Scheduler: Triggers check tasks according to schedule.
- Handlers: Modules for parsing specific site pages (in
src/handlers). - DownloadManager: Wrapper around
yt-dlpfor downloading videos. - StateManager: Persists progress in
wetvlo-state.json(configurable viastateFile).
📝 License
MIT
