TutorialMaker / extension /background.js
vivekchakraverty's picture
Add PO Token Grabber browser extension (one-click visitor data + gvs PO token)
29c4ada
Raw
History Blame
1.16 kB
// Service worker: watch the player's videoplayback requests and capture the gvs PO token.
//
// YouTube's web player fetches video data from *.googlevideo.com/videoplayback?...&pot=...
// where `pot` is the gvs Proof-of-Origin token and `c` is the client (e.g. WEB). We read
// it (read-only; no blocking) and stash the latest into session storage for the popup.
const FILTER = { urls: ["*://*.googlevideo.com/videoplayback*"] };
chrome.webRequest.onBeforeRequest.addListener(
(details) => {
try {
const u = new URL(details.url);
const pot = u.searchParams.get("pot");
if (!pot) return;
const client = u.searchParams.get("c") || "";
// Prefer WEB tokens (what yt-dlp's web client needs); still record others as backup.
chrome.storage.session.get(["gvsPot", "gvsClient"]).then((cur) => {
const haveWeb = cur.gvsClient === "WEB";
if (!haveWeb || client === "WEB") {
chrome.storage.session.set({
gvsPot: pot,
gvsClient: client,
potTime: Date.now(),
});
}
});
} catch (e) {
// ignore malformed URLs
}
},
FILTER
);