YT-DLP Not working on production mode of N8N!

Describe the problem/error/question

I’m trying to run a workflow that works perfectly in manual mode, but does not work in production mode. I thought the problem might be in the JS Node itself, so I moved my use case into CMD to execute commands directly, but encountered the same problem. The workflow did not work or run, it just showed “RUNNING!!”

I have tried the following solutions, but none of them have produced any results:

I tried setting the timeout to 60 seconds.
I tried setting a 60-second timeout in the JS Node.
I accepted to output errors or continue.
I tried changing the execute mode to 0 (Legacy).

Since it works well in manual mode, maybe the problem lies with QUEUE MODE? I am running N8N with Postgres + Redis in QUEUE MODE.

Here’s my two workflows on both ways CMD AND CODE:

Share the output returned by the last node

Information on your n8n setup

  • n8n version: AI BETA
  • Database (default: SQLite): POSTGRESS + REDIS
  • n8n EXECUTIONS_PROCESS setting (default: own, main): default
  • Running n8n via (Docker, npm, n8n cloud, desktop app): Docker
  • Operating system: Linux

Hello, Anas,

Can you tell where the inputs stop? I looked at your IF nodes and they had some incomplete URLs, where they should be vars from the JSON output of the Telegram message?

[edit: the var i think your YT-DLP is looking for is just the video ID from the Youtube URL, yes?]

1 Like


i just want to get the URL which is work manually but not working on production

It does not stop, it’s not even working (start). only when i do manually run. once i deleted the js node of ytdlp it will back to normal working

1 Like

Hey @anas,

You mentioned you are using docker but we don’t ship with yt-dlp so I take it you are using a custom image of n8n?

I would make sure that your workers are also using the same image so they can access the yt-dlp binary, I suspect what is happening is when you run the workflow in test mode it runs on the main instance of n8n which has access to it but when you run in queue mode it will run on the worker. It could also be that the yt-dlp binary has some kind of first run option that needs to completed as well like agreeing to a license or something.

1 Like

While I haven’t written my transcript js into N8N’s platform, I do use it as a command line from my terminal. So I’m familiar, but don’t have it on N8N.

I’ll copy your setup to my N8N and see if I can make it work there too.

@anas, looking closer now, I don’t have your yt-dlp code in my environment, but want to ask one more question, what is your end goal? It looks like you want a thumbnail, and ultimately a download of the Youtube video, yes?

If you like, I can share with you my Python script, it does just that, pulls the transcript of the video, the video in highest quality, and stores them in the directory the script is run from. My execute looks like this:
./ [youtubevideoID] [somenameforwhatthetextfileis]

The only other thing I could suggest would be to pin the output of what works when you have in the working copy (with the deleted node) and use that to see possibly when the workflow that isn’t working stops and perhaps what it is expecting and not seeing what it wants.

Sorry I’m not more helpful.

1 Like

This topic was automatically closed 90 days after the last reply. New replies are no longer allowed.