code wiki / (root) / nx_media_archive_research.nx

nx_media_archive_research.nx source

↩ module page · 52 lines · 4127 B

1// nx_media_archive_research.nx -- THIN structured MEDIA-ARCHIVE research source organ. COMPOSES 2// nx_research_engine (sovereign fetch->extract->bank). Operator 2026-06-29: "is there anything that actually 3// STORES media like them ... we want images, gifs, videos etc -- use the nishi researcher." The honest gap: 4// Common Crawl is HTML/text-first and does NOT systematically store media bytes (it gives the page + link graph, 5// not the pixels). This banks the systems that ACTUALLY store media -- deep-grab web archives (Archive Team, 6// Webrecorder), media repositories (Wikimedia Commons, Flickr, Imgur, Giphy), GIF/short-video hosts and how they 7// DIE (Gfycat), the pointer-vs-storage distinction (LAION/ImageNet = URLs + metadata, NOT the image bytes), and 8// the reddit case (Pushshift archived the TEXT, not the media). Grounds the time machine's media-ingest strategy. 9// Never assumptions (Rule 4). Prefix mediarc_ keeps this distinct from arc_/srch_. expect_exit: 0 license_tier: ORIGINAL 10import "nx_research_engine.nx" 11const K_MAGIC_8388608: i64 = 8388608 12 13func main() -> i64 { 14 let store: *TrustStore = rf_init() 15 if (store as i64) == 0 { rf_puts("mediarc: trust store load failed\n" as *u8); return 1 } 16 rf_puts("CA roots="); rf_putn(trust_store_count(store)); rf_puts(" -- MEDIA-ARCHIVE research (who actually STORES images/gifs/video) -> Library\n" as *u8) 17 let cap: i64 = K_MAGIC_8388608 18 let out: *u8 = sys_mmap(cap) 19 var ok: i64 = 0 20 21 rf_section("DEEP-GRAB WEB ARCHIVES -- capture & STORE the actual media bytes (what Wayback misses)" as *u8) 22 ok = ok + rf_fetch_bank("https://en.wikipedia.org/wiki/Archive_Team" as *u8, "mediarc_archiveteam" as *u8, store, out, cap) 23 ok = ok + rf_fetch_bank("https://en.wikipedia.org/wiki/Webrecorder" as *u8, "mediarc_webrecorder" as *u8, store, out, cap) 24 25 rf_section("MEDIA REPOSITORIES -- store the actual files (images/video/audio), dumps available" as *u8) 26 ok = ok + rf_fetch_bank("https://en.wikipedia.org/wiki/Wikimedia_Commons" as *u8, "mediarc_wikimedia_commons" as *u8, store, out, cap) 27 ok = ok + rf_fetch_bank("https://en.wikipedia.org/wiki/Flickr" as *u8, "mediarc_flickr" as *u8, store, out, cap) 28 ok = ok + rf_fetch_bank("https://en.wikipedia.org/wiki/Imgur" as *u8, "mediarc_imgur" as *u8, store, out, cap) 29 ok = ok + rf_fetch_bank("https://en.wikipedia.org/wiki/Photobucket" as *u8, "mediarc_photobucket" as *u8, store, out, cap) 30 31 rf_section("GIF / SHORT-VIDEO HOSTS -- the gif layer (and how it dies: Gfycat shutdown = media loss)" as *u8) 32 ok = ok + rf_fetch_bank("https://en.wikipedia.org/wiki/Giphy" as *u8, "mediarc_giphy" as *u8, store, out, cap) 33 ok = ok + rf_fetch_bank("https://en.wikipedia.org/wiki/Gfycat" as *u8, "mediarc_gfycat" as *u8, store, out, cap) 34 35 rf_section("MEDIA DATASETS -- POINTERS vs STORAGE (LAION/ImageNet = URLs + metadata, NOT the image bytes)" as *u8) 36 ok = ok + rf_fetch_bank("https://en.wikipedia.org/wiki/ImageNet" as *u8, "mediarc_imagenet" as *u8, store, out, cap) 37 ok = ok + rf_fetch_bank("https://en.wikipedia.org/wiki/LAION" as *u8, "mediarc_laion" as *u8, store, out, cap) 38 39 rf_section("VIDEO -- hosting + sovereign preservation tooling" as *u8) 40 ok = ok + rf_fetch_bank("https://en.wikipedia.org/wiki/YouTube" as *u8, "mediarc_youtube" as *u8, store, out, cap) 41 ok = ok + rf_fetch_bank("https://en.wikipedia.org/wiki/Yt-dlp" as *u8, "mediarc_ytdlp" as *u8, store, out, cap) 42 43 rf_section("REDDIT / SOCIAL -- Pushshift archived the TEXT, not the media (the hardest recovery case)" as *u8) 44 ok = ok + rf_fetch_bank("https://en.wikipedia.org/wiki/Pushshift" as *u8, "mediarc_pushshift" as *u8, store, out, cap) 45 46 rf_section("GENERAL -- digital libraries / repositories" as *u8) 47 ok = ok + rf_fetch_bank("https://en.wikipedia.org/wiki/Digital_library" as *u8, "mediarc_digital_library" as *u8, store, out, cap) 48 49 rf_puts("MEDIA-ARCHIVE BANKED: "); rf_putn(ok); rf_puts(" / 14 (sections preserved, gzip-guarded; run nx_library_harvest_v2 to index, nx_search_cli to query)\n" as *u8) 50 if ok < 1 { return 51 } 51 return 0 52}