The R12 S3 underscore-publish left worker.uploader_url() sharing a name with the `uploader_url` model attribute and the yt-dlp `"uploader_url"` info-dict key. The function is now build_uploader_url() — the attribute, dict key, log line and docstrings keep the plain `uploader_url` name. Rename touches only the def, its two call sites, and the backfill import; no behaviour change (ruff clean, pytest 193).