The channel avatar (and video thumbnails) are yt3.googleusercontent.com / i.ytimg.com URLs; hotlink/CORS policy could blank them (failed <img> hides on the watchlist, falls to initials on the wishlist orb) — which is why the poster 'vanished' on both pages. Extend the /api/video/img proxy allowlist to YouTube CDN hosts (ytimg.com / ggpht.com / googleusercontent.com, https-only, still SSRF-safe) and route all YouTube art through it: VideoYoutube.img() helper used by the watchlist channel cards, search chip, the wishlist nebula orb/season/still art, and the channel detail avatar/banner/thumbnails. 2 img-proxy tests green; JS balanced. |
||
|---|---|---|
| .. | ||
| __init__.py | ||
| calendar.py | ||
| dashboard.py | ||
| detail.py | ||
| discover.py | ||
| enrichment.py | ||
| libraries.py | ||
| library.py | ||
| poster.py | ||
| scan.py | ||
| search.py | ||
| watchlist.py | ||
| wishlist.py | ||
| youtube.py | ||