About

When 59% of the videos on your map block embedding: show why, not a black error frame

Sort ahead with status.embeddable, then warn before the click with marker shape, thumbnail and a YouTube button

This is about deciding what to do with blocked videos when you embed YouTube on a map or list. By the end you'll know how to find out ahead of time whether a video can be embedded, and you'll have a screen layout that shows blocked videos instead of hiding them.

Click, black screen

I clicked a collected camera on the map and got a black screen: "Video unavailable. Playback on other websites has been disabled by the video owner." The uploader had turned off embedding on other sites.

I figured it'd be a few. I counted, and it was more than half.

Saitama, 2026-08-24

The map had 58 cameras. 24 played (41%) and 34 had embedding turned off (59%). Within 10 km of Omiya, only 9 of 21 played.

Of all channels, the uniform camera channels that filled in the Omiya area (埼玉県さいたま市○○区…ライブカメラ) had all turned it off. That's not a gap you can close by collecting harder. I haven't widened the sample yet to see whether the ratio is specific to this area and operator or true of Japanese live cameras in general.

One field decides it

Call videos.list with part=status and you get status.embeddable. If it's false, the iframe becomes an error screen. Save it at collect time and you don't need to ask the API every time someone clicks. We were already calling videos.list to check live status, so it cost nothing extra.

Three options

Embed everything, and half the clicks end on a black error screen. Drop them during collection, and the map goes empty, especially around Omiya. The one left is to show everything but mark the difference. That's what we picked.

Tell the reader before the clickSaitama, 2026-08-24: 58 cameras24 play34 embed off (59%)Markersplays on the mapYouTube onlyDecided at collect time fromvideos.list status.embeddableBeforeVideo unavailable(owner disabled embedding)Aftercamera thumbnailThis camera plays on YouTube onlyOpen on YouTubeBefore: half the clicks end on a black frame.After: the hollow ring warns you, and the modalstill shows what the intersection looks like.Within 10 km of Omiya: 9 of 21 cameras play. Collecting more cannot fix that.

Let people know before they click

The markers come first. A camera that plays is a filled circle. A blocked one is a hollow ring. You can tell them apart before clicking. The tooltip gets a YouTubeのみ (YouTube only) badge.

Clicking a blocked camera shows, instead of a player, that camera's thumbnail (img.youtube.com/vi/{id}/hqdefault.jpg) with a short note and a button to YouTube. That carries more information than a black error frame. The thumbnail alone tells you roughly what that intersection looks like.

After the change, what used to look like a broken map read as "this camera is one you watch on YouTube." Saying why beats hiding it. That's what we took away from this.

Still checking

I'm still checking whether using thumbnails of embed-blocked videos this way is fine under YouTube's terms. I also don't know whether status.embeddable can change mid-broadcast. If it can, the refresh interval needs to be short.

If you run a service that pulls in outside videos or data and you're figuring out how to handle what you can't show, feel free to ask negabaro.

How to handle embed-blocked videos

OptionResultFits when
Embed anywayHalf the clicks hit a black error screenOnly a handful are blocked
Drop at collect timeThe map empties (within 10 km of Omiya: 21 to 9)Only playable videos matter to your service
Show, but mark the differenceKnown before the click, location info staysMaps or lists where where it is is the information

The call that decides it

GET /youtube/v3/videos?part=snippet,liveStreamingDetails,status&id=v1,v2,...

# each item in the response
"status": { "embeddable": false, ... }   # false means the iframe shows an error

Step-by-Step

1

Call videos.list with part=status and save status.embeddable at collect time

2

Split the markers: filled circle for playable, hollow ring for blocked

3

For blocked ones, show a thumbnail, a note and a YouTube button instead of a player

4

Check separately whether the thumbnail use is fine under the terms and whether embeddable can change

Use Cases

Services that put YouTube live cameras or videos on a map Curation or list pages that embed other people's videos
← YouTube clips are data with no list: collecting means picking up URLs, and one HTML page has the rest