Google NotebookLM හි Flashcard විශේෂතාවය භාවිතා කරමින් Anki වෙත තොරතුරු ගෙන යාමට උත්සාහ කළ විකසකයකුගේ කතාන්දරයක් මෙන්න. මුලින්ම ඉලක්කය ලේසි යැයි සිතූ අතර, පේජ් එකේ පෙන්වෙන Flashcard ගොනු සෘජුවම ගවේෂණය කිරීමේ වැඩසටහනක් ලියන්න සලස්වා ගත්තා.
දැන්වීමේ පරිශීලක පැනලය විවෘත කර F12 Developer Tools භාවිතා කරමින් ස්ක්රැපර් රැගෙන ගිය විට, කිසිදු කාඩ්පතක් හමු නොවීය. සියලු CSS selector ගණනාවක් හිස් ප්රතිඵලයක් දෙයි. එවිට DOM එක ඇසුරින් පරීක්ෂා කළ විට, Flashcard ගොනු iframe එකක් තුළ, වෙනත් වසමේ (scf.usercontent.goog) සදහා සපයනු ලැබේන බව හඳුනා ගන්නා ලදි. මෙය Same‑Origin Policy එකේ නියමයයි – බ්රවුසරය විවිධ වසම් අතර සෘජු ප්රවේශය තහනම් කරයි.
මෙම බාධාව දුරස් කර ගැනීමට දෙදෙනා මාර්ග තිබුණි: (1) iframe තුළ සෘජුවම ස්ක්රිප්ට් එකක් ඇතුළත් කර දත්ත කියවීම, (2) iframe එකට දත්ත එන නෙට්වර්ක් ඉල්ලීම පසුකාලීනව අල්ලා ගැනීම. මම දෙවන මාර්ගය තේරුවෙමි. Network tab එකේ “batchexecute” නමැති Google RPC endpoint එකට කරන ඉල්ලීමක් (rpcid=v9rmvd) 1.5 MB වැනි විශාල ප්රතිචාරයක් ලබා දුන්නා. එම ප්රතිචාරය JSON නොව, Google හි proprietary chunked format එකක් වූ නිසා, පළමුවෙන් “)]}'” safety prefix එක ඉවත් කර, පේළියෙන් පේළියට ලයින් ගණනාවක් විභාග කළ යුතු විය.
අවසානයේ v9rmvd සම්බන්ධ ලයින් එක තුළ නව JSON ස්ට්රින් එකක් සොයාගත්තා. ඒක විග්රහ කළ විට, HTML ගොනුවක් (iframe page) escaped ආකාරයෙන් ඇතුළත් වූවා. එම HTML තුළ data-app-data attribute එකේ සම්පූර්ණ Flashcard JSON එක (front, back, card type) තිබුණි. 56 කාඩ්පත්, සම්පූර්ණයෙන්ම අඩංගු විය.
ශ්රී ලංකාවට ඇති වැදගත්කම
මෙම තාක්ෂණික විසඳුම ශ්රී ලංකාවේ සිසුන්, සංවර්ධකයන් සහ ව්යාපාර සඳහා බොහෝ වාසියක් ගෙන එයි. සිසුන්ට Google NotebookLM භාවිතා කරමින් නිර්මාණය කරන Flashcard ගොනු Anki වෙත ස්වයංක්රීයව ආයාත කර, ඉගෙනුම් කාලය අඩු කරගත හැක. සංවර්ධකයන්ට Same‑Origin Policy එකේ සීමාවන් මත පදනම්ව නව පරිසරයක data extraction කරන හැකියාවක් ලබා දෙන අතර, Chrome extension development පිළිබඳ ගැඹුරු අවබෝධයක් ලබා ගත හැක. ව්යාපාරිකයින්ට API හෝ RPC endpoint එකකින් ලැබෙන අධි-දත්ත ආකෘතියන් විශ්ලේෂණය කර, නිෂ්පාදන ව්යාපෘති වලට අභ්යන්තර data pipelines ගොඩනැගීමට උපකාරී වේ.
කෙසේ වෙතත්, Google විසින් rpcid හෝ response format එක වෙනස් කළහොත් මෙම ක්රමය බිඳ වැටේ. ඒ නිසා ලේඛකයා සියලු පියවරම error‑handling සහ telemetry සමඟ සකසා, වෙනස්කම් සිදුවූ විට දැනගැනීමට පද්ධතියක් සකසා ඇත.
අවසන් වශයෙන්, Same‑Origin Policy එක iframe එකට ප්රවේශය තහනම් කරන්නේ නමුත්, එයට ආදානය වන නෙට්වර්ක් ඉල්ලීම පසුපසින් අල්ලගත හැකි බව තේරුම් ගත යුතුය. බ්රවුසරයේ “side‑door” සොයා ගැනීම, තාක්ෂණික ගැටළු විසඳීමට නව මාර්ගයක් විවෘත කරයි.