{"spec":1,"kind":"site","generatedAt":"2026-07-07T19:09:11.107Z","site":{"id":"hasanalyzer","title":"Hasanalyzer","description":"Search through the musings of our favorite Turk, Hasan Piker","url":"https://hasanalyzer.pages.dev"},"totals":{"channels":4,"videos":3045},"channels":[{"slug":"hasanabi","name":"HasanAbi","videoCount":98,"groupId":"default","manifests":{"transcripts":"https://hasanalyzer.pages.dev/transcripts/hasanabi/manifest.json","subs":"https://hasanalyzer.pages.dev/subs/hasanabi/manifest.json"}},{"slug":"HasanAbiVODs","name":"HasanAbiVODs","videoCount":1131,"groupId":"default","manifests":{"transcripts":"https://hasanalyzer.pages.dev/transcripts/HasanAbiVODs/manifest.json","subs":"https://hasanalyzer.pages.dev/subs/HasanAbiVODs/manifest.json"}},{"slug":"HasanAbiVODs3","name":"HasanAbiVODs3","videoCount":1278,"groupId":"default","manifests":{"transcripts":"https://hasanalyzer.pages.dev/transcripts/HasanAbiVODs3/manifest.json","subs":"https://hasanalyzer.pages.dev/subs/HasanAbiVODs3/manifest.json"}},{"slug":"HasanAbiVODsbackup","name":"HasanAbiVODsbackup","videoCount":538,"groupId":"default","manifests":{"transcripts":"https://hasanalyzer.pages.dev/transcripts/HasanAbiVODsbackup/manifest.json","subs":"https://hasanalyzer.pages.dev/subs/HasanAbiVODsbackup/manifest.json"}}],"shardScheme":{"description":"Transcripts are served as paginated JSON shards — there is no per-video file. To read one video's transcript: (1) GET the channel's transcripts manifest; (2) look up the video id in its `slugToPage` map to get a page number N; (3) GET page-<NNNN>.json (N zero-padded to 4 digits) and take the record whose `id` matches.","transcriptsManifest":"<channel.manifests.transcripts> -> { pageCount, slugToPage: { <videoId>: <pageNumber> } }","transcriptPage":"/transcripts/<slug>/page-<NNNN>.json -> array of { id, title, uploadDate, duration, channel, description, tags, webpageUrl, platform, cues: [{ start, end, text }] }","subsManifest":"<channel.manifests.subs> -> lighter list-view records under the same slugToPage scheme","summariesIndex":"/summaries/manifest.json + /summaries/page-<NNNN>.json -> cross-channel browse index","pageNumberFormat":"zero-padded to 4 digits, e.g. page 0 -> page-0000.json"},"useWithAi":"https://hasanalyzer.pages.dev/use-with-ai","bulkArchives":{"manifest":"https://hasanalyzer.pages.dev/archives/manifest.json","note":"Whole-channel transcript and live-chat archives for offline bulk ingestion."}}