First CHAppsWeb apps

First CH Apps / Photo License Check Before Switching Web Agencies

Photo License Check Before Switching Web Agencies

Before you move your website to a new agency, check up to 30 photos on a page for stock-site file names (AdobeStock_number) and the creator, credit and copyright text written inside each photo (JPEG, WebP or PNG).

How it works and details

Agencies often buy stock photos for your site under their own account. If you switch agencies, whether you may keep using those photos depends on the contract and on whose name the license is in. This tool picks up photo file names and any creator or rights text written inside the photos, then drafts a message to confirm with your current agency.

Scope: photos in img, srcset and picture tags in the HTML of the one page you enter (up to 30). CSS background images and images added later by JavaScript are not covered, so some photos you see on the page may not appear in the table. SVG logos and icons are not counted.

See a sample result (fictional site)

We also build websites after you switch (Japanese). Ask about website work

How to read this

We do not judge rights or legality from these clues. Most photos with stock-site names were bought properly. All this tells you is who to ask.

Stock-site names are matched only against patterns we have confirmed (currently Adobe Stock's "AdobeStock_number"). Renamed photos and other stock sites are not matched.

Creator, credit and copyright text is read from the first 128KB of each photo (XMP and IPTC in JPEG, XMP in WebP, XMP and Author / Copyright text in PNG; up to 60 characters each). WordPress and similar tools can strip this when resizing or converting to WebP, so a photo with "No clues" may still carry it in the original file.

We never reverse-search or display images. Use the file names and page as clues when you ask your current agency.

SERVER PROCESSING — what we send and what we keep

Sent: only the URL you enter. Our server (Cloudflare Workers) makes DNS lookups to check the destination is safe, then fetches the page with a public GET (first 512KB). It then fetches the photos one by one, asking only for the first 128KB, stopping after 5 seconds or 2 redirects, and re-checking the destination at every hop. Internal networks, localhost and private IPs are never fetched.

Stored: nothing. The URL, the HTML, the images and the result are never written to a database (no KV, no D1) and leave memory when the request ends.

Returned: the photo file names and URLs, a state, whether the name matches a stock site, and any creator text (up to 60 characters each). Image bytes and the page itself are never returned. The message and the share image are made on your device.

Rate: one check calls the server up to 3 times (ten photos each). Each client may call it 30 times per 10 minutes.

Use it as an API

POST /shashin-sozai-moto/api/check with JSON ({"url": "https://example.com/", "offset": 0, "lang": "en"}) to get the photo list and the verdicts for ten photos starting at offset. offset is 0, 10 or 20.