imputnet / cobalt

best way to save what you love
https://cobalt.tools
GNU Affero General Public License v3.0
17.09k stars 1.38k forks source link

Cobalt instance cannot retrieve YouTube cookies #889

Open lpwyz opened 1 week ago

lpwyz commented 1 week ago

problem description

I cloned the Cobalt project here and it is also running normally. At this point, I enabled incognito browsing mode and opened: https://www.google.com/device Then I ran npm to token: YouTube

After waiting for a few minutes, I kept getting the following error message:

image

your instance configuration

No response

KwiatekMiki commented 1 week ago

you need to use pnpm, not npm, to install. it never told you to use npm.

https://pnpm.io/installation

lpwyz commented 1 week ago

https://www.google.com/device

Hello, please take a closer look at the image above. I can assure you that it is a dependency for pnpm install. I used both npm and pnpm, but it still doesn't work. I can confirm that my local cobalt project dependency has been installed. Is there a problem with my steps? Here are my specific steps, (1) After pulling the cobalt project, pnpm install installs dependencies (2) Open Google Chrome in incognito mode and enter the address: https://www.google.com/device (3) Open a new window in incognito Google Chrome, go to www.youtube.com, and log in to your account (4) Running in the cobalt project API directory: npm run token: YouTube

Is there any problem with my steps above

lpwyz commented 1 week ago
image
lpwyz commented 1 week ago

And I found that every time I input:

https://www.google.com/device Afterwards, the address will change to:

https://accounts.google.com/o/oauth2/device/usercode?ddm=1&flowName=DeviceOAuth

dumbmoron commented 1 week ago

what’s happening here is that the request made to youtube is timing out. you could try increasing the timeout for requests by adding this to the top of api/src/util/generate-youtube-tokens.js:

import { Agent, setGlobalDispatcher } from 'undici';

setGlobalDispatcher(new Agent({
    connect: { timeout: 60000 }
}));
lpwyz commented 1 week ago

what’s happening here is that the request made to youtube is timing out. you could try increasing the timeout for requests by adding this to the top of api/src/util/generate-youtube-tokens.js:

import { Agent, setGlobalDispatcher } from 'undici';

setGlobalDispatcher(new Agent({
    connect: { timeout: 60000 }
}));
image

Hello, I added the method you mentioned above, but still cannot obtain cookies. Is it because I am in China, but I have a VPN that allows me to browse YouTube and access foreign websites? So it's strange

lpwyz commented 1 week ago

Can someone help me? Paid consultation is also possible

lostdusty commented 1 week ago

i suspect that node isnt using the vpn connection

lostdusty commented 1 week ago

here is something i found: https://stackoverflow.com/a/32055112

in other words, how is your vpn connection managed? what service are you using?

lpwyz commented 1 week ago

I am very troubled. The VPN I am using with Clashx has already set up a global connection and entered the command in the terminal management:

export http_proxy= http://127.0.0.1:7890 export https_proxy= http://127.0.0.1:7890 export all_proxy=socks5://127.0.0.1:7890

But even after running it, it still shows that I can't get YouTube or cookies, and I'm a little suspicious of myself.

lpwyz commented 1 week ago

Can anyone make a video for me to learn

wukko commented 1 week ago

i think your proxy times out youtube, this is what the error suggests

lpwyz commented 1 week ago

我认为你的代理超时了 youtube,这是错误提示

Do you have a recommended VPN? I'll give it a try

lostdusty commented 1 week ago

you could try openvpn

wukko commented 1 week ago

pretty sure regular protocols are blocked in china

lpwyz commented 1 week ago

很确定常规协议在中国被屏蔽了

Got it, is that there's no way to open a VPN

lpwyz commented 1 week ago

很确定常规协议在中国得到了增强

明白了,就是没办法开通VPN

Is it true that even if I open a VPN in China, there's no way, right?