---
name: netfree-youtube-checker
description: Checks whether a YouTube video URL is accessible on NetFree (the
  Israeli kosher internet filter) using a public API. Use when user asks to
  check a YouTube link, "netfree", "netfri", "kosher internet", "youtube open or
  blocked", "האם הסרטון פתוח בנטפרי", "bdika netfree", "youtube netfree", or
  whenever the user requests a YouTube link and may be on a filtered network.
  Prefers OPEN videos over LOCKED ones when suggesting content. Do NOT use for
  checking non-YouTube URLs or for bypassing NetFree filtering.
license: MIT
# Generated by agentskills.co.il/create on 2026-08-31
---

# NetFree YouTube Checker

## Instructions

### Step 1: Identify the YouTube video ID

When the user shares any YouTube link, extract the video ID. Common formats:

| Input format | Example | Extracted ID |
|---|---|---|
| Standard watch URL | youtube.com/watch?v=dQw4w9WgXcQ | dQw4w9WgXcQ |
| Short URL | youtu.be/dQw4w9WgXcQ | dQw4w9WgXcQ |
| Embed URL | youtube.com/embed/dQw4w9WgXcQ | dQw4w9WgXcQ |
| Raw ID (11 chars) | dQw4w9WgXcQ | dQw4w9WgXcQ |

If the user provides a search query instead of a link, note that you cannot
check a video without its ID. Ask the user to provide a specific link, or
if you have web search access, retrieve candidate video IDs first, then
check each one.

### Step 2: Call the NetFree check API

Send a GET request to:

    https://youtube-netfree-test.tsoolgee.uk/{VIDEO_ID} [verify]

Example for ID dQw4w9WgXcQ:

    https://youtube-netfree-test.tsoolgee.uk/dQw4w9WgXcQ [verify]

The server returns exactly one word in the response body:
- OPEN: the video is accessible on NetFree
- LOCK: the video is blocked on NetFree

Do not append query parameters or extra path segments. Any other format
will cause the request to fail.

### Step 3: Report the result clearly to the user

After receiving the response, tell the user:

- If OPEN: the video is available on NetFree. Provide the full YouTube link.
- If LOCK: the video is blocked on NetFree. Suggest the user look for an
  alternative video on the same topic.
- If the request fails or returns an unexpected value: inform the user that
  the check service may be temporarily unavailable (it runs on a personal
  home server) and to try again shortly.

### Step 4: Apply this check proactively for YouTube links

Whenever the user asks for a YouTube video recommendation or link, apply
this workflow automatically before presenting results. Prefer OPEN videos.
If your first candidate is LOCK, try at least one more candidate before
informing the user that no OPEN video was found for that query.

### Step 5: Prioritize OPEN videos

When multiple YouTube videos are relevant to the user's request, check
each one and present only OPEN results first. Clearly label LOCKED videos
as unavailable on NetFree if you mention them at all.

## Examples

### Example 1: User shares a direct link for checking

User says: "תוכל לבדוק אם הסרטון הזה פתוח בנטפרי? youtube.com/watch?v=dQw4w9WgXcQ"

Actions:
1. Extract video ID: dQw4w9WgXcQ
2. Call GET https://youtube-netfree-test.tsoolgee.uk/dQw4w9WgXcQ [verify]
3. Server responds: OPEN
4. Reply: "הסרטון פתוח בנטפרי. קישור: https://www.youtube.com/watch?v=dQw4w9WgXcQ" [verify]

Result: user gets a confirmed OPEN link and can watch it on NetFree.

### Example 2: User asks for a video recommendation

User says: "תמצא לי סרטון ביוטיוב על איך מכינים עוגת גבינה"

Actions:
1. Identify candidate video IDs through web search or known videos.
2. Check the first candidate via the API.
3. If LOCK, check a second candidate.
4. Return the first OPEN result with the full YouTube link.
5. If all checked videos are LOCK, inform the user and suggest searching
   on a different platform.

Result: user receives a NetFree-accessible YouTube link, with no extra steps
needed on their end.

### Example 3: Unexpected API response

User says: "check if youtu.be/abc123XYZ is open"

Actions:
1. Extract video ID: abc123XYZ
2. Call GET https://youtube-netfree-test.tsoolgee.uk/abc123XYZ [verify]
3. Server returns a non-200 response or unexpected body (not OPEN or LOCK).
4. Inform the user: "The NetFree check service returned an unexpected response.
   The server is hosted on a personal machine and may be temporarily offline.
   Please try again in a few minutes, or visit youtube-netfree-test.tsoolgee.uk
   directly to verify it is running."

Result: user is not left confused, and understands this is a best-effort
community service.

## Gotchas

- The check server runs on a personal home computer connected to the internet.
  It may have brief downtime (restarts, power cuts, network drops). Always
  handle HTTP errors and timeouts gracefully and inform the user without
  alarming them.
- The API endpoint is case-sensitive for the path: use the video ID exactly
  as extracted. YouTube video IDs are case-sensitive (capital and lowercase
  letters are different).
- Do not add a trailing slash or any query string after the video ID. The
  server expects exactly: /{ID} and nothing else.
- The response body is a single word (OPEN or LOCK) with no JSON wrapper and
  no quotes. Parse it as plain text, not JSON.
- NetFree status can change over time: a video that is OPEN today may be LOCK
  tomorrow and vice versa. Do not cache results across user sessions.
- When reporting a LOCK result, never suggest that the user try to bypass or
  circumvent NetFree. Simply offer alternative OPEN content.
- Mixed Hebrew and Latin in your reply: keep the status word (OPEN or LOCK)
  in English as-is, since it comes from the API. When writing in Hebrew, place
  the status word naturally: "הסרטון חסום (LOCK)" or "הסרטון פתוח (OPEN)".

## Troubleshooting

### The API returns no response or times out

Cause: the home server is offline or the user's own network has a routing
issue toward tsoolgee.uk.
Solution: wait a few minutes and retry. The user can also open
https://youtube-netfree-test.tsoolgee.uk/dQw4w9WgXcQ [verify] directly in a browser
to verify whether the service is reachable. This is a community-run,
single-machine service without uptime guarantees.

### The response is neither OPEN nor LOCK

Cause: the path sent to the server was malformed (extra slash, query string,
or an invalid video ID), or the server returned an HTML error page.
Solution: re-extract the video ID carefully. Ensure it is exactly 11
characters (standard YouTube ID length). Rebuild the request URL as
https://youtube-netfree-test.tsoolgee.uk/{11-char-ID} [verify] with no extras.
If the problem persists, report the raw ID to the user and ask them to
verify it is a valid YouTube video ID.

### A video shows LOCK but the user says it plays fine on NetFree

Cause: NetFree filtering decisions can be updated by the NetFree team at any
time. The check server reflects the state at the moment it ran its last
internal update. There may be a small lag between a NetFree policy change
and what the server reports.
Solution: accept the user's direct experience as authoritative. The API
provides a best-effort signal, not a guaranteed real-time source of truth.
Advise the user that the server may not reflect the very latest NetFree
allow-list.