Taufik Nur Rahmanda
Taufik Nur Rahmanda

Reputation: 1969

How to obtain GET request URL using chrome.webRequest API?

I create a chrome extension which offer accessibility to download any media in opened page of Facebook, including photo, video, and story. But I'm stuck when about to access/catch facebook's video story request URL that's shown up in Network tab in console, using chrome.webRequest API.

enter image description here

By excluding bytestart and byteend params from URL above, we got the full video file (with an expiration token). The <video> tag itself has src attribute like blob:https://www.facebook.com/<some_alpha_numerics_and_hyphens>.

This is what I've tried in my extension project:

permission:

"permissions": [
  "webRequest",
  "*://*/*"
],

I've tried to listen all the events available but no luck.

chrome.webRequest.onBeforeRequest.addListener(
  function(details) {
    console.log('onBeforeRequest', details.url);
  },
  {
    urls: ["<all_urls>"]
  }
);
// onBeforeSendHeaders
// onSendHeaders
// onHeadersReceived
// onAuthRequired
// onResponseStarted
// onBeforeRedirect
// onCompleted
// onErrorOccurred

I haven't tried chrome.declarativeWebRequest https://developer.chrome.com/extensions/declarativeWebRequest because it's for Beta and Dev channels only.

Is it really possible or did I have mistake in using it? Thank you in advance.

Upvotes: 3

Views: 5952

Answers (1)

jasonandmonte
jasonandmonte

Reputation: 2028

I would recommend adding the "webRequestBlocking" permission to your manifest.json file.

According to the documentation the callback uses a blocking event handler that requires the "webRequest" as well as the "webRequestBlocking" permission in order to work.

Reference: https://developer.chrome.com/extensions/webRequest#examples

Upvotes: 1

Related Questions