How the PattayaStream dataset is counted

PattayaStream counts dated public recordings of streams from Pattaya, not unique events or viewers. Kick and YouTube are checked every 30 minutes, and a live label expires after 75 minutes without a fresh check. Archive starts, channel information and live checks are kept apart, and a failed later read never changes an earlier timestamp.

PattayaStream check method

Camera and channel status checks

The checker is configured to check Kick and YouTube every 30 minutes. A successful live observation can be shown for at most 75 minutes; this describes the configured policy, not a guarantee that each scheduled run succeeds.

If a source read fails, a recent successful reading keeps its original check time. Once it expires, it cannot support a current live label. A failed check does not prove that a channel has stopped broadcasting.

Profile-check dates describe listing information. Saved recording starts describe past broadcasts. Neither is a current playback test. Municipal camera labels and their catalogue date are separate from channel checks; a camera’s picture time and playable status remain unknown until its scene is verified.

Implementation reviewed · How we check

How to open provider links · Choose a camera · Update history

Snapshot · Asia/Bangkok (UTC+7).

Directory fields

The directory export has one row per current directory listing. A listing can have multiple platform accounts. Area means a directory label, not a travelling creator’s current filming location. profile_checked is the saved profile/source check, not a video playback test. live_now is deliberately null.

Which starts count

The monthly sample uses the same merged replay collection as channel pages: data/stream-log.json, the latest saved channel check and dated listing history. Count only valid, exact start timestamps on or before the cutoff, in the Bangkok calendar month. Exclude approximate dates, date-only entries and ongoing broadcasts.

Deduplication

Normalize YouTube recording IDs and other platform recording paths; an identical recording URL counts once across the directory. Separate platforms remain separate recordings and can cover the same event. Reconnects can be separate recordings. No cross-platform event deduplication is claimed.

Date boundaries

first_start and last_start are recalculated from each listing’s counted monthly records. The report firstStart and lastStart are the minimum and maximum counted timestamps. They are not channel launch dates, the snapshot date or a claim of activity after the last saved recording. Null means no counted start, not zero real-world activity.

Limits

Coverage is a rolling, uneven archive sample, often capped per account. Missing and unavailable recordings are not estimated. Counts do not measure all city streams, viewers, audience share, quality, duration, simultaneous concurrency or current playback. Active channels means directory listings with at least one counted recording.

Reproduce & verify

Reproduce with npm ci and npm run build from the repository revision that accompanies the snapshot. scripts/stream-insights.mjs defines observations and monthlyReport; scripts/dataset-pages.mjs produces the downloads. Verify files against /data/manifest.json. A later data revision may change a snapshot: retain the files and checksum when citing it.

Fields & provenance

channels: slug, name, kind, area, profile_url, channels, profile_checked, recordings, first_start, last_start, live_now.

CSV uses platforms and channel_urls joined with |. JSON keeps channel objects. The original records preserve platform, exact start, source URL and read date (null when unknown). Monthly CSV has month, snapshot, dimension, label and count; each dimension sums to the same total.

README · SHA-256 manifest · Downloads and citation

CC BY 4.0 · Credit PattayaStream, link to the licence and indicate changes.

PattayaStream compilation, factual tables and methodology only. No rights to third-party video, audio, images, trademarks or platform content are granted.

Tim & Paemi on Telegram