강의

멘토링

로드맵

Inflearn brand logo image

인프런 커뮤니티 질문&답변

john.chang님의 프로필 이미지
john.chang

작성한 질문수

코딩 없이 AI 자동화 전문가가 되는 법, n8n 완벽 가이드

<추가> youtube-transcript 오류를 위한 무료 API 분석부터 직접 서버 구축까지!

추가 강의 youtube-transcript 오류 관련 문의

해결된 질문

작성

·

93

1

안녕하세요,

 

추가강의 듣고 여러번 시도를 해보았는데도 에러가 생겨서 문의 드립니다.

image.png

위 처럼 에러가 나고, 에러가 안보이실까봐 아래와 같이 로그만 별도로 복사하였습니다.

 

The connection to the server was closed unexpectedly, perhaps it is offline. You can retry the request immediately or wait and retry later.

Error details

From HTTP Request

Error code

ECONNRESET

Full message

socket hang up

Request

{ "body": { "url": "https://youtu.be/LCraVFYWFWU?si=rnsFK5-mVKxccDrT" }, "headers": { "accept": "application/json,text/html,application/xhtml+xml,application/xml,text/*;q=0.9, image/*;q=0.8, /;q=0.7" }, "method": "POST", "uri": "http://host.docker.internal:9012/extract_subtitles", "gzip": true, "rejectUnauthorized": true, "followRedirect": true, "resolveWithFullResponse": true, "followAllRedirects": true, "timeout": 300000, "encoding": null, "json": false, "useStream": true }

Other info

Item Index

0

Node type

n8n-nodes-base.httpRequest

Node version

4.2 (Latest)

n8n version

1.98.1 (Self Hosted)

Time

2025. 6. 18. 오후 3:40:16

Stack trace

NodeApiError: The connection to the server was closed unexpectedly, perhaps it is offline. You can retry the request immediately or wait and retry later. at ExecuteContext.execute (/usr/local/lib/node_modules/n8n/node_modules/.pnpm/n8n-nodes-base@file+packages+nodes-base_@aws-sdk+credential-providers@3.808.0_asn1.js@5_12b981d6b49d407a163f4d5244314033/node_modules/n8n-nodes-base/nodes/HttpRequest/V3/HttpRequestV3.node.ts:769:15) at processTicksAndRejections (node:internal/process/task_queues:105:5) at WorkflowExecute.runNode (/usr/local/lib/node_modules/n8n/node_modules/.pnpm/n8n-core@file+packages+core_openai@4.78.1_encoding@0.1.13_zod@3.24.1_/node_modules/n8n-core/src/execution-engine/workflow-execute.ts:1185:9) at /usr/local/lib/node_modules/n8n/node_modules/.pnpm/n8n-core@file+packages+core_openai@4.78.1_encoding@0.1.13_zod@3.24.1_/node_modules/n8n-core/src/execution-engine/workflow-execute.ts:1534:27 at /usr/local/lib/node_modules/n8n/node_modules/.pnpm/n8n-core@file+packages+core_openai@4.78.1_encoding@0.1.13_zod@3.24.1_/node_modules/n8n-core/src/execution-engine/workflow-execute.ts:2098:11

답변 5

1

남박사님의 프로필 이미지
남박사
지식공유자

image.png

일단 올려주신 주소로 직접 테스트를 했을때 아무 문제 없이 동작 하는 것을 확인했습니다. 그러므로 워크플로우 상의 문제는 없다고 전제하고 일단 몇가지 상황을 의심해봐야 할듯 합니다.

 

image.png

일단 오류 메세지는 그림과 같이 ECONNRESET 코드에 socket hang up 메세지가 출력되었는데 이는 http 요청을 하였으나 연결이 성립되기도 전에 내부 소켓이 강제 종료되었음을 의미하는 경우가 많습니다. 쉽게 말해 아예 접속 자체가 되지 않았다는 이야기라고 볼 수도 있는데 (무조건 100%는 아닙니다.) 아마도 도커가 제대로 구동중이지 않거나 혹은 9012번 포트를 시스템 어딘가에서 사용중이던가, 아니면 윈도우나 맥 기반의 Docker.desktop 환경이 아니라 리눅스 기반에서 테스트 중인경우 host.docker.internal 를 인식하지 못하는 문제일 수도 있습니다. 만약 리눅스를 쓰실 정도라면 host.docker.internal 를 /etc/hosts 에 등록하는 방법 정도는 아시리라 생각됩니다.

 

image.png

정상적인 상황이라면 도커 내부에 파이썬 API 가 정상적으로 동작중인지 확인해봐야 할 듯 합니다.

 

image.png

그림과 같이 해당 도커 컨터이너의 Logs 를 살펴볼 수 있고 위의 그림에서처럼 http://0.0.0.:9012 로 uvicorn 러닝 상태, Application startup complete 와 같이 서버가 정상 동작 중인 메세지가 떠있어야 합니다.

 

image.png

그리고 n8n에서 API 를 호출 하고 난 뒤 도커 컨테이너를 클릭해보면 그림과 같이 POST /extract_subtitles 요청이 로그에 있어야 하고 (오류가 있던 없던) 그리고 문제 없이 수행되었다면 200 OK 를 반환하고 yt-dlp 라이브러리가 해당 유튜브를 다운로드한 내역이 있어야 합니다. 물론 여기서 오류가 있다면 여기 오류 내역이 출력되어있을 것 입니다.

 

일단 위에서 얘기한 사항들을 하나씩 체크해보시고 다시 또 질문 주시기 바랍니다.

0

john.chang님의 프로필 이미지
john.chang
질문자

안녕하세요 남박사님,

 

위에서 말씀하신거 다 했는데요, 아래와 같이 나옵니다. 같은 문제로 계속 괴롭혀드려서 미안합니다.

image.pngimage.png

혹시 도움이 될까 싶어서 아래와 같이 로그 복사하였습니다.

The connection to the server was closed unexpectedly, perhaps it is offline. You can retry the request immediately or wait and retry later.

Error details

From HTTP Request

Error code

ECONNRESET

Full message

socket hang up

Request

{ "body": { "url": "https://youtu.be/LCraVFYWFWU?si=rnsFK5-mVKxccDrT" }, "headers": { "accept": "application/json,text/html,application/xhtml+xml,application/xml,text/*;q=0.9, image/*;q=0.8, /;q=0.7" }, "method": "POST", "uri": "http://host.docker.internal:9012/extract_subtitles", "gzip": true, "rejectUnauthorized": true, "followRedirect": true, "resolveWithFullResponse": true, "followAllRedirects": true, "timeout": 300000, "encoding": null, "json": false, "useStream": true }

Other info

Item Index

0

Node type

n8n-nodes-base.httpRequest

Node version

4.2 (Latest)

n8n version

1.98.1 (Self Hosted)

Time

2025. 6. 23. 오전 11:10:24

Stack trace

NodeApiError: The connection to the server was closed unexpectedly, perhaps it is offline. You can retry the request immediately or wait and retry later. at ExecuteContext.execute (/usr/local/lib/node_modules/n8n/node_modules/.pnpm/n8n-nodes-base@file+packages+nodes-base_@aws-sdk+credential-providers@3.808.0_asn1.js@5_12b981d6b49d407a163f4d5244314033/node_modules/n8n-nodes-base/nodes/HttpRequest/V3/HttpRequestV3.node.ts:769:15) at processTicksAndRejections (node:internal/process/task_queues:105:5) at WorkflowExecute.runNode (/usr/local/lib/node_modules/n8n/node_modules/.pnpm/n8n-core@file+packages+core_openai@4.78.1_encoding@0.1.13_zod@3.24.1_/node_modules/n8n-core/src/execution-engine/workflow-execute.ts:1185:9) at /usr/local/lib/node_modules/n8n/node_modules/.pnpm/n8n-core@file+packages+core_openai@4.78.1_encoding@0.1.13_zod@3.24.1_/node_modules/n8n-core/src/execution-engine/workflow-execute.ts:1534:27 at /usr/local/lib/node_modules/n8n/node_modules/.pnpm/n8n-core@file+packages+core_openai@4.78.1_encoding@0.1.13_zod@3.24.1_/node_modules/n8n-core/src/execution-engine/workflow-execute.ts:2098:11

 

남박사님의 프로필 이미지
남박사
지식공유자

안녕하세요.

제가 아래에서 말씀드린 도커그룹에 참여 시키는 내용을 하셨다는 말씀이신가요? 그렇다면 n8n 도커에서 http://host.docker.internal:9012/extract_subtitles 로 접근하시면 안되고 http://youtube-transcript:9012 처럼 별칭으로 접근하셔야 합니다. 물론 여기서 youtube-transcript 이란 이름은 제가 말씀드린 방법으로 도커 컨터이너 이름을 확인 하셔야 합니다. 그리고 호스트 컴퓨터 브라우저에서는 localhost 로 접근하시면 됩니다. host.docker.internal 을 인식하지 못하는 문제기 때문에 이를 우회하는 방법을 말씀드린 내용입니다.

그리고 저는 질문 많이 하시는 분들을 좋아합니다. 다만 좀 더 자세한 정보주시면 감사하겠습니다. (로그도 좋지만 스샷이 많으면 더 좋을듯 합니다. )

0

john.chang님의 프로필 이미지
john.chang
질문자

빠른 답변 감사드립니다.

말씀하신 주소로 접속하면 아래와 같이 나옵니다.

image.png

그리고, 혹시나 해서 아래와 같이 localhost로 해서 접속을 해보니 말씀하신대로 나옵니다. (문제 해결하는데 도움이 되면 좋겠다는 마음에서 올립니다.)

image.png

그리고, 다른 컨테이너 들은 다음과 같습니다.

image.png

api 컨테이너는 다음과 같이 나오고,

image.png

n8n 컨테이너는 잘 사용하고 있고, qdrant는 다음과 같이 나옵니다.

image.png

문제가 해결할 수 있을까요 ? 왠지 기본적인 셋팅이 잘못된게 아닌가 하는 생각이 듭니다.

 

남박사님의 프로필 이미지
남박사
지식공유자

혹시 윈도우 Hyper-V 가 제대로 동작을 안하는건지 아니면 어떤 문제가 있는건지 궁금하긴 합니다. 호스트에서 도커로는 접근이 가능한데 도커에서 호스트로 접근하는게 문제가 있어 보입니다. 어쨌든,

지금 현재 문제를 해결하기 가장 좋은 방법은 유튜브 자막 도커를 N8N 도커가 속해있는 네트워크 그룹에 참여를 시키는 방법입니다.

docker inspect n8n --format '{{ json .NetworkSettings.Networks }}'

윈도우 파워쉘(터미널이 아닙니다.)에서 위의 명령어를 입력하면

 

image.png

그림과 같이 n8n이 속한 네트워크 정보를 볼 수 있는데 빨간 박스에 있는 이름이 n8n 도커가 사용중인 네트워크 이름입니다.

 

docker network connect self-hosted-ai-starter-kit_demo youtube-transcript-api

위의 docker network connect [대상 네트워크 이름] [도커 컨테이너 이름] 명령어를 통해서 youtube-transcript-api (본인 환경의 이름을 확인) 를 기존의 n8n 네트워크 그룹에 참여 시킬 수 있습니다. 그러면 n8n과 youtube-transcript 컨테이너는 서로 별칭을 통해 인식 할 수 있습니다.

 

http://youtube-transcript:9012/extract_subtitles

그러면 http request 노드의 URL 값에 기존의 http://docker.host.internal:9012 대신 위의 코드에서 처럼 http://youtube-transcript:9012 로 별칭을 통해 접근이 가능해집니다.

 

docker network inspect self-hosted-ai-starter-kit_demo

또한 위의 명령어처럼 docker network inspect [네트워크 이름]을 입력하면,

 

image.png

그림에서 처럼 해당 네트워크에 연결된 모든 도커 컨테이너 목록을 확인 할 수 있습니다.

 

docker ps --format "{{.Names}}"

또한 위의 명령어를 통해 현재 구동중인 도커 컨테이너 이름을 목록으로 확인 할 수도 있습니다.

 

image.png

위의 이미지에서 처럼 구동중인 모든 도커 컨테이너 이름을 확인 할 수 있습니다.

 

위의 내용을 종합하여 인식하지 못하는 도커 컨테이너를 n8n 네트워크 그룹에 참여시키고 그리고 docker.host.internal 대신 별칭을 사용해서 접근 하는 방법으로 사용해보시기 바랍니다. (사실 이게 원래 오리지널 사용법이긴 합니다.)

네트워크 이름이나 도커 이름이 다를 수 있기 때문에 반드시 본인의 환경 정보를 확인하시고 적용하셔야 합니다.

0

john.chang님의 프로필 이미지
john.chang
질문자

안녕하세요, 상세한 답변 감사드립니다. 그리고, 로그 확인하는 방법도 알게 되어 많이 배운 것 같습니다.

로그를 확인해보니 아래와 같습니다.

image.png

 

이 로그는 Workflow 를 실행한 후에 에러가 생겨도 아무런 변화가 없습니다.

 

무슨 문제일까요 ?

남박사님의 프로필 이미지
남박사
지식공유자

워크플로우를 실행했을때 도커 로그에 아무런 변화가 없다면 워크플로우에서 해당 도커 API에 요청 자체를 못하고 있다고 봐야 할듯 한데요? 올려주신 스크린샷을 봤을때 Http Request 에 http://host.docker.internal:9012/extract_subtitles 도 문제 없어 보이긴 합니다만...

일단 브라우저를 직접 띄워서 http://host.docker.internal:9012/docs 를 접속해보세요.

 

image.png

문제가 없다면 위의 그림처럼 FastAPI 의 docs 문서가 화면에 보여야 합니다.

 

image.png

또한 이렇게 dosc 를 요청해도 도커에 그림과 같이 로그가 출력되어야 합니다.

 

그리고 궁금한게 혹시 도커에 실행중인 다른 컨테너이가 있나요? 그리고 있다면 다른 컨터네이들은 문제 없이 접속이 가능한지도 궁금합니다.

 

 

0

안녕하세요, 인프런 AI 인턴입니다. john.chang님.

현재 YouTube 자막 추출 작업 과정에서 CONNECTION RESET 에러 메시지로 인해 어려움을 겪고 계신 것 같습니다. 이 문제는 주로 서버와의 연결이 예상치 못하게 종료될 때 발생합니다. 몇 가지 해결 방법을 제안드리겠습니다.

  1. 서버 상태 확인: 서버(host.docker.internal:9012)가 정상적으로 가동 중인지 확인해야 합니다. 서버가 다운되었거나 네트워크 문제로 접근할 수 없는 경우에 이와 같은 오류가 발생할 수 있습니다. Docker에서 해당 컨테이너가 제대로 작동하고 있는지 상태를 확인해 보세요.

  2. Docker 네트워크 설정: Docker 설정에서 네트워크가 올바르게 구성되어 있는지 확인하세요. host.docker.internal은 Docker를 사용하여 네트워킹을 할 때 종종 사용하는 명칭이지만, 환경에 따라 설정이 다를 수 있습니다. Docker의 네트워크 브릿지 모드를 사용하거나 포트를 올바르게 연결해 주십시오.

  3. 클라이언트 타임아웃 설정: 요청에 대한 타임아웃 시간을 늘려보세요. 요청이 오래 지속되기 때문일 수 있습니다. 현재 설정된 타임아웃이 300000(5분)으로 설정되어 있지만, 이 시간을 조금 더 늘려서 시도를 해보세요.

  4. 에러 로그 분석: 추가적인 오류 로그를 확인하여 Backend 시스템에게 어떤 입력이 제공되었는지를 검토해 보세요. 어떤 특정 입력이 문제를 일으키고 있을 수도 있습니다.

관련 유사 사례 및 해결 방법에 대한 추가 정보를 얻기 위해서는 기존의 질문을 참고해 보시면 도움이 될 수 있습니다. 예를 들어, 02-google-api-authentication-error와 유사한 문제 해결 경험에서는 비슷한 상황에서의 에러 해결 과정을 다루고 있습니다.

에러가 계속되면 Docker 컨테이너 환경과 연결 방식을 자세히 확인하신 후, 워크플로우의 설정과 서버 사이의 통신을 다시 검토하시기를 권장드립니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

john.chang님의 프로필 이미지
john.chang

작성한 질문수

질문하기