fent / node-ytdl-core

YouTube video downloader in javascript.
MIT License
4.48k stars 790 forks source link

Proxy #1249

Open earningpoints opened 1 year ago

earningpoints commented 1 year ago

Anyone can tell me how I can use proxy ? Please give some examples code

WaqasIbrahim commented 1 year ago

https://github.com/fent/node-ytdl-core/blob/master/example/proxy.js

You can pass a custom http agent in request options.

earningpoints commented 1 year ago

Sir how i can create a custom http agent ? please Help I am new in nodejs sir

WaqasIbrahim commented 1 year ago

https://github.com/fent/node-ytdl-core/blob/master/example/proxy.js

Look at this example.

itsaqib96 commented 6 months ago

https://github.com/fent/node-ytdl-core/blob/master/example/proxy.js

Look at this example.

I am trying to use proxy agent but somehow it is not using the proxy server. ytdl-core is still using the local network to download videos. Please see the code below.

import { HttpsProxyAgent } from "https-proxy-agent";

const agent = new HttpsProxyAgent('https://MY_USERNAME:MY_PASSWORD@premium-residential.geonode.com:9000');
  const requestOptions = {agent};
const videoInfo = await ytdl.getInfo(url, requestOptions);

return new Promise((resolve, reject) => {
        ytdl(url, { ...requestOptions, format: videoFormat })
          .pipe(fs.createWriteStream(videOutputPath))
          .on("finish", () =>
            resolve({
              videOutputPath,
              filename,
            })
          )
          .on("error", (error) => reject(error));
      });
rogerpadilla commented 5 months ago

@itsaqib96 i think it is because the structure differs from what you are using.

Correct:

const videoInfo = await ytdl.getInfo(url, {  requestOptions: { agent } });

Yours:

const videoInfo = await ytdl.getInfo(url, { agent });

Notice the agent property must be wrapped into a requestOptions property and your current usage lacks it.

TechLateef commented 3 months ago

hello every please does any one got solution to this i try using the format above my code // Proxy URL format const proxyUrl = http://${username}:${password}@ddc.oxylabs.io:8000;

// Create proxy agent const agent = new HttpsProxyAgent(proxyUrl );

const options = process.env.NODE_ENV === 'production' ? { agent } : {};

    const info = await ytdl.getInfo(videoId, {  agent: options.agent  });

the error am getting "Type 'HttpsProxyAgent"http://<username>:<password>@ddc.oxylabs.io:8000" | undefined' is not assignable to type 'Agent | undefined'. Type 'HttpsProxyAgent"http://<username>:<password>@ddc.oxylabs.io:8000"' is missing the following properties from type 'Agent': dispatcher, jarts(2322)".

& is where i put my username and password