-
Notifications
You must be signed in to change notification settings - Fork 502
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
ERROR 500 - when using impersonate yt-dlp works directly but not via metube #559
Comments
Have you inspected into the container and installed the chrome component? |
@PikuZheng how do you mean? I've opened a sh in the container and was able to use yt-dlp directly with impersonate chrome, but didn't do much else. I also have a custom dockerfile to install some dependencies |
There is no impersonate named chrome, so I think something is missing in the runtime environment. |
You might be right about chrome not being right, i just saw in the code that there's a quick mapping between chrome and chrome-110. This is the command I use that works yt-dlp https://www.udemy.com/course/complete-react-developer-zero-to-mastery/learn/lecture/14754858#overview --cookies /cookies/cookies.txt --impersonate="chrome-110" My YTDL options are like this
And loaded in the docker compose via env var
|
according to https://github.com/yt-dlp/yt-dlp/blob/0b6b7742c2e7f2a1fcb0b54ef3dd484bab404b3f/yt_dlp/YoutubeDL.py#L422 or you need to modify YoutubeDL.py so that json is converted to class object |
Good point. I made a quick PR to create the ImpersonateTarget object if the impersonate property exists |
nice job |
Depending on your pr, should ytdl_options be written as |
I'm not sure? When running the command directly I can get away with using chrome-110 without specifying OS. |
What I tried
main.py
|
I'm also running into this issue. If I just provide a string for impersonate, I see the exact same "AssertionError" that was mentioned in the beginning. Now that the pull request has been merged, I was hoping that this will work. So I also tried:
in my ytdl-options.json and I'm no getting a different error:
Looks like a dict is not expected. So what's the correct syntax to provide the impersonate parameters? |
Can you try either "impersonate": "chrome", or "impersonate": "chrome-110" |
As I mentioned before, this gives the same AssertionError that was already shown: So this is with 'impersonate': 'chrome-110':
|
I believe using a dictionary is a good idea, especially since curl-impersonate has been updated to provide more OS options |
I'll give it a look maybe today |
YTDL_OPTIONS={"cookiefile":"/cookies/cookies.txt","verbose":"true","impersonate":"chrome"}
If I enter the docker container and execute yt-dlp directly with the cookiefile and impersonate, the download works.
When I try via the UI I get
The text was updated successfully, but these errors were encountered: