9a82fede7a
• checkYtdlp() — version + GitHub-latest check (24h-cached) • autoUpdateYtdlp(dataDir) — multi-strategy update (-U, pip, brew, binary) Module-private memoization (ytdlpVersion, ytdlpLastCheck) now stays inside ytdlp.js where it belongs. autoUpdateYtdlp gained an explicit dataDir parameter — strategy 4 (StartOS binary download to /data/bin/) needs it; passing it in keeps the module pure of caller-side state. server/index.js: 2694 → 2614 lines. Smoke tested: server boots; /api/license-status, /api/health respond. No behavior change.