강의

멘토링

커뮤니티

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

1분 1minute님의 프로필 이미지
1분 1minute

작성한 질문수

원클릭으로 AI가 생성해주는 Youtube 쇼츠 만들기 자동화(with n8n)

Kling AI로 영상 생성 요청하기

비디오 생성 부분에서 VIDEO - 시트 행 가져오기 노드에서 아래처럼 에러가 나요

해결된 질문

작성

·

16

0

이거 item으로 하는거 맞을까요? 에러나는데요?

강의에 있는 내용(에러남)

{{ $('IMG_PROMPT - 시트 행 가져오기').item.json.ID }}

현재변경상태

{{ $('IMG_PROMPT - 시트 행 가져오기').first().json.ID }}

 

{ "nodes": [ { "parameters": { "documentId": { "__rl": true, "value": "1598jdsyth9sQN_SMDftijF8IaxkO4FdxndFfxdheqmI", "mode": "list", "cachedResultName": "Youtube Shorts 자동화 Template(김영욱)", "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1598jdsyth9sQN_SMDftijF8IaxkO4FdxndFfxdheqmI/edit?usp=drivesdk" }, "sheetName": { "__rl": true, "value": 1794818536, "mode": "list", "cachedResultName": "Youtube 자동화 시트", "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1598jdsyth9sQN_SMDftijF8IaxkO4FdxndFfxdheqmI/edit#gid=1794818536" }, "filtersUI": { "values": [ { "lookupColumn": "ID", "lookupValue": "={{ $('IMG_PROMPT - 시트 행 가져오기').first().json.ID }}" } ] }, "options": {} }, "type": "n8n-nodes-base.googleSheets", "typeVersion": 4.7, "position": [ 3776, 544 ], "id": "dc3ed630-1854-463d-a0c1-3c6185ac007a", "name": "VIDEO - 시트 행 가져오기", "credentials": { "googleSheetsOAuth2Api": { "id": "284k6gV823HAbz1N", "name": "Google Sheets account" } } } ], "connections": { "VIDEO - 시트 행 가져오기": { "main": [ [] ] } }, "pinData": {}, "meta": { "templateCredsSetupCompleted": true, "instanceId": "4b15107acc6f7c90aecf299aeeeff033cc193c7e7a724fd8b9299102220850ef" } } 이노드에서 item을 first()로 바꾸니까 일단 에러는 안나는데 엑셀시트에서 순서대로 불러오는건데 그거는 될까?
그래서 일단 item을 first()로 바꾸니까 일단 에러는 안나는 데 문제가 구글시트에서 새롭게 숏츠 제작할때마다 드래그 해서 위로 올려야 하잖아요 그럼 번거로 울거 같다서 물어봤더니 이렇게 대답해주네요


좋은 질문이에요 🙂

지금 설정을 보면 부분에서 로 바꾸셨죠. 이건 단순히 앞선 노드에서 나온 여러 item 중 첫 번째 item만 가져오겠다는 의미예요. 그래서 에러는 안 나지만, 엑셀 시트의 행을 순서대로 하나씩 가져오는 동작과는 조금 다릅니다.

핵심 차이

• → 결과 배열 중 첫 번째만 가져옴. 즉, 항상 같은 행만 불러오게 됨.

• 순서대로 불러오기 → 여러 item을 순회하면서 각각의 ID를 기준으로 시트 행을 가져와야 함.

순서대로 불러오려면?

• n8n에서는 일반적으로 Loop(For Each) 구조를 써야 합니다.

• 예를 들어 노드가 여러 item을 출력한다면, 그 item들을 그대로 다음 Google Sheets 노드에 전달하면 각 item별로 실행됩니다.

• 즉, 를 쓰지 않고 그냥 로 두면, 각 item의 ID가 순서대로 들어가면서 시트 행을 하나씩 가져오게 돼요.

정리

• 는 테스트용으로 에러를 피하는 데는 유용하지만, 실제로 순차적으로 여러 행을 가져오려면 쓰면 안 됩니다.

• 순서대로 가져오려면 형태로 두고, n8n의 기본 item 처리 흐름(각 item별 실행)을 활용하세요.

👉 지금처럼 자동화 시트에서 여러 행을 순서대로 불러오고 싶으신 거라면 대신 그냥 를 쓰는 게 맞습니다.

혹시 원하시는 게 엑셀 시트 전체를 순서대로 읽어서 영상 자동화에 쓰는 것인지, 아니면 특정 ID만 매칭해서 가져오는 것인지 알려주시면 더 정확하게 워크플로우 구조를 짜드릴 수 있어요.

맞아요 👍
first()를 쓰면 항상 맨 앞 item만 고정적으로 가져오기 때문에 매번 제일 앞으로 드래그해야 하는 상황이 생깁니다. 즉, n8n의 기본 흐름(각 item을 순서대로 전달하는 구조)을 무시하게 되는 거죠.

어떻게 하면 순서대로 잘 가져올까?

  • Google Sheets 노드에서 lookupValue={{ $json.ID }} 로 두면, 들어오는 각 item의 ID 값이 그대로 적용돼서 순차적으로 행을 가져옵니다.

  • n8n은 기본적으로 item 단위 병렬 실행을 지원하기 때문에, 별도의 드래그 없이도 여러 item이 순서대로 처리돼요.

  • 만약 정말 "한 줄씩 순차적으로" 실행하고 싶다면, Split In Batches 노드를 써서 한 번에 하나씩 넘겨주는 방식도 있습니다.

정리

  • first() → 항상 같은 첫 item만 가져옴 → 매번 드래그해야 하는 불편함 발생

  • $json.ID → 각 item별로 자동으로 순서대로 실행됨 → 원하는 동작에 더 적합

👉 따라서 지금 상황에서는 first() 대신 그냥 $json.ID를 쓰는 게 맞습니다.

혹시 원하시는 게 모든 행을 병렬로 가져오는 것인지, 아니면 진짜로 한 행씩 순차적으로 처리하는 것인지 알려주시면, 거기에 맞는 n8n 노드 구조(예: Split In Batches vs 기본 item 흐름)를 더 구체적으로 짜드릴 수 있어요.

좋은 포인트 짚으셨어요 🙂

지금 쓰신

{{ $('IMG_PROMPT - 시트 행 가져오기').first().json.ID }}

는 항상 첫 번째 아이템만 가져오게 됩니다. 그래서 순서대로 여러 행을 처리하려면 first()를 빼고 각 item의 값을 그대로 참조해야 해요.

올바른 변경 방법

{{ $json.ID }}

이렇게 바꾸면, n8n이 기본적으로 각 item을 순회하면서 해당 item의 ID 값을 자동으로 넣어줍니다. 따라서 시트 행을 순서대로 하나씩 가져올 수 있어요.


정리

  • first() → 항상 첫 번째만 가져옴 (테스트용으로는 OK, 실제 순차처리에는 불편)

  • $json.ID → 각 item별로 ID를 순서대로 처리 (원하는 동작)

👉 따라서 first() 대신 {{ $json.ID }} 로 변경하시면 됩니다.

혹시 원하시는 게 모든 행을 병렬로 가져오는 것인지, 아니면 진짜로 한 행씩 순차적으로 처리하는 것인지에 따라 Split In Batches 같은 노드를 추가할 수도 있는데, 기본적으로는 $json.ID만 쓰면 자동으로 순서대로 돌아갑니다.

답변 1

0

안녕하세요!

이상하네요 이부분은 제가 item이라고 코드를 친게 아니라,

해당 시트의 ID를 끌어다 넣었을때 n8n에서 자동으로
'{{ $('IMG - 시트 행 가져오기').item.json.ID }}'

이렇게 입력해주는 부분이거든요

그래도 first로 했을때 에러가 안나고 잘 해결되셨다니 다행입니다!

1분 1minute님의 프로필 이미지
1분 1minute

작성한 질문수

질문하기