Changelog
All notable changes to this project will be documented in this file.
[Unreleased]
Added
- Channel URL resolution: Support for channel URLs that require resolution via backend id-finder:
youtube.com/@handle
youtube.com/c/customname
youtube.com/user/username
- Output field:
resolvedChannelId (present only when a handle/name URL is resolved to a UC channel ID).
- Error code:
CHANNEL_ID_NOT_FOUND when id-finder returns an empty channelId.
- Console polish:
resolvedChannelId displayed in the default dataset overview table.
Notes
- In
v1.0.0, UNSUPPORTED_URL included /@, /c/, and /user/ channel URLs. These formats are supported starting with this Unreleased set of changes.
[1.0.0] - 2026-01-04
Initial public release.
Features
-
URL Processing: Parse YouTube videos, shorts, and channels from various URL formats
youtube.com/watch?v=VIDEO_ID
youtu.be/VIDEO_ID
youtube.com/shorts/VIDEO_ID
youtube.com/channel/UCXXXXXX
-
Monetization Detection: Returns monetization status for each URL
FULL - Fully monetized
PARTIAL - Partially monetized (video only)
NONE - Not monetized
UNKNOWN - Cannot determine
-
Concurrent Processing: Process up to 10 URLs in parallel (configurable)
- Rate limited to 10 requests/second to protect backend
- Full jitter backoff for retries
-
Mode Filtering: Optionally restrict to only videos or only channels
- Returns
MODE_MISMATCH error for non-matching URLs
-
Run Summary: OUTPUT record with statistics written to key-value store
- Counts by type, monetization level, and error code
- Abort handling with reason tracking
-
Robustness: Production-grade error handling
- 30s fetch timeout with automatic retries
- Input validation (max 10,000 URLs, max 2048 chars each)
- Sanitized logging (no sensitive data exposed)
- Graceful abort on authentication errors
Error Codes
| Code | Description |
|---|
INVALID_INPUT | URL malformed or unsupported |
MODE_MISMATCH | URL type doesn't match mode field |
BACKEND_AUTH | 401/403 from API |
NOT_FOUND | 404 from API |
RATE_LIMITED | 429 from API |
BACKEND_ERROR | 5xx from API |
NETWORK_ERROR | Connection failure or timeout |
PROCESSING_ERROR | Unexpected internal processing error |