At taostats, I have had ~10 SN owners ask why their image is not showing, despite being set in the btcli (we read the url from the chain).
The issue is typically that the URL is a webpage showing the image, not the link to the image.
Suggested: add a check for URL validity - but look at the header of other file - make sure it is not html, but actually png, webp, jpg, etc.
For example
https://github.com/dougsillars/dougsillars/blob/main/twitter.jpg
This is a webpage - with content type text/html; charset=utf-8
Whereas this:
https://raw.githubusercontent.com/dougsillars/dougsillars/refs/heads/main/twitter.jpg
has content type image/jpeg
and is correctly an image.