본문으로 건너뛰기

유튜브

유튜브 아이콘유튜브 아이콘ssemworks-microservice-base.youTube
통신/외부외부 서비스일부 옵션 미지원 라벨 있음

YouTube Data API 로 동영상(video)/채널(channel)/재생목록(playlist)/재생목록 항목(playlistItem)/동영상 카테고리(videoCategory)를 조회·관리한다. OAuth2(refresh token) 인증 — 자격증명에 연결된 Google 계정 권한으로 동작. 동영상 업로드는 claim-check(파일 저장소 fileRef)를 스트리밍 resumable upload.

입출력 포트
입력
유튜브 아이콘유튜브 아이콘
유튜브
youTube
데이터
데이터(main)

다이어그램 설명

  • 입력: 메인 1개.
  • 출력 포트 1개 — 결과 아이템이 다음 마이크로서비스로 전달됩니다.
  • 색 규약 — 실선/파랑은 데이터(main) 흐름, 점선/색상 포트는 AI 서브마이크로서비스 연결(ai_*)입니다.

기본 정보

항목
서비스 타입ssemworks-microservice-base.youTube
표시 이름유튜브
카테고리통신/외부
그룹input, output
버전1

자격증명

이름필수
youTubeOAuth2Api

입출력

  • 입력: 메인(main)
  • 출력: 메인(main)

파라미터

파라미터이름타입기본값설명
리소스resource선택video작업 대상 (n8n 기본값은 channel — 저장 시 생략 수용)
선택지: 동영상 (video)(video) · 채널 (channel)(channel) · 재생목록 (playlist)(playlist) · 재생목록 항목 (playlistItem)(playlistItem) · 동영상 카테고리 (videoCategory)(videoCategory)
작업operation선택getAll동영상에 수행할 작업
선택지: 검색·목록 (getAll)(getAll) · 단건 조회 (get)(get) · 부분 갱신 (update)(update) · 삭제 (delete)(delete) · 평가 (rate)(rate) · 업로드 (upload)(upload)
표시 조건: resource = "video"
작업operation선택getAll채널에 수행할 작업 (update/uploadBanner 후속)
선택지: 검색·목록 (getAll)(getAll) · 단건 조회 (get)(get)
표시 조건: resource = "channel"
작업operation선택getAll선택지: 목록 (getAll)(getAll)
표시 조건: resource = "videoCategory"
작업operation선택getAll재생목록에 수행할 작업 (create/delete/update 후속)
선택지: 검색·목록 (getAll)(getAll) · 단건 조회 (get)(get)
표시 조건: resource = "playlist"
작업operation선택add재생목록 항목에 수행할 작업 (get/delete 후속)
선택지: 추가 (add)(add) · 목록 (getAll)(getAll)
표시 조건: resource = "playlistItem"
동영상 ID (videoId)videoId문자열""대상 동영상 ID. 표현식 사용 가능(교차 노드 참조 $('노드').first().json.id 포함)
표시 조건: resource = "video", operation = "get" 또는 "update" 또는 "delete" 또는 "rate"
필수
동영상 ID (videoId)videoId문자열""재생목록에 추가할 동영상 ID. 표현식 사용 가능
표시 조건: resource = "playlistItem", operation = "add"
필수
채널 ID (channelId)channelId문자열""채널 ID. 비우면 인증 계정의 채널(mine=true). 표현식 사용 가능
표시 조건: resource = "channel", operation = "get"
재생목록 ID (playlistId)playlistId문자열""대상 재생목록 ID. 표현식 사용 가능
표시 조건: resource = "playlist" 또는 "playlistItem", operation = "get" 또는 "add" 또는 "getAll"
필수
지역 코드 (regionCode)regionCode문자열""ISO 3166-1 alpha-2 지역 코드. videoCategory 목록의 필수 값 / video update·upload 에서는 카테고리 선택 보조용(요청 본문에 미전송)
표시 조건: resource = "videoCategory"
구성 요소 (part)part다중 선택["*"]응답에 포함할 리소스 part. 비우거나 '' 이면 안전한 전체 set(소유권 필요 part 제외)을 요청
선택지: 전체 (
)(*) · snippet · status · statistics · contentDetails · topicDetails · recordingDetails · liveStreamingDetails · localizations · player
표시 조건: resource = "video", operation = "get"
전체 반환 (returnAll)returnAll불리언falsetrue 면 nextPageToken 으로 전체 페이지 순회. false 면 limit 개수까지만
표시 조건: operation = "getAll"
최대 개수 (limit)limit숫자25반환할 최대 항목 수(returnAll=false 일 때). 페이지당 최대 50
표시 조건: operation = "getAll", returnAll = false
필터 (filters)filters컬렉션{}검색 필터. video 검색은 channelId/relatedToVideoId/videoCategoryId/videoType/videoSyndicated 지정 시 forMine 자동 해제
표시 조건: resource = "video" 또는 "channel", operation = "getAll"
옵션 (options)options컬렉션{}표시 조건: resource = "video", operation = "getAll"
제목 (title)title문자열""동영상 제목. update 는 비우면 기존 제목 유지(GET 병합). 표현식 사용 가능
표시 조건: resource = "video", operation = "update" 또는 "upload"
카테고리 ID (categoryId)categoryId문자열""동영상 카테고리 ID(숫자). update 는 비우면 기존 값 유지. 표현식 사용 가능
표시 조건: resource = "video", operation = "update" 또는 "upload"
지역 코드 (regionCode)regionCode문자열""카테고리 선택 보조용(요청 본문에 미전송) — n8n 호환 필드
표시 조건: resource = "video", operation = "update" 또는 "upload"
평가 (rating)rating선택like선택지: 좋아요 (like)(like) · 싫어요 (dislike)(dislike) · 해제 (none)(none)
표시 조건: resource = "video", operation = "rate"
갱신 필드 (updateFields)updateFields컬렉션{}부분 갱신할 snippet/status 필드(미지정 필드는 기존 값 보존)
표시 조건: resource = "video", operation = "update"
옵션 (options)options컬렉션{}업로드 동영상의 snippet/status 부가 필드. 업로드 바이트는 입력 fileRef(파일 저장소)에서 스트리밍
표시 조건: resource = "video", operation = "upload"
옵션 (options)options컬렉션{}표시 조건: resource = "playlistItem", operation = "add"

필터 (filters) 하위 필드

파라미터이름타입기본값설명
검색어 (q)q문자열""검색어(표현식 가능)
채널 ID (channelId)channelId문자열""특정 채널로 제한(지정 시 forMine 해제)
게시 이후 (publishedAfter)publishedAfter날짜/시간""RFC 3339 이후 게시분만
게시 이전 (publishedBefore)publishedBefore날짜/시간""RFC 3339 이전 게시분만
지역 코드 (regionCode)regionCode문자열""ISO 3166-1 alpha-2
동영상 카테고리 ID (videoCategoryId)videoCategoryId문자열""
사용자명 (forUsername)forUsername문자열""channel 검색: 레거시 사용자명
내가 관리 (managedByMe)managedByMe불리언falsechannel 검색: 콘텐츠 소유자 관리 채널

옵션 (options) 하위 필드

파라미터이름타입기본값설명
정렬 (order)order선택relevance선택지: 관련도 (relevance)(relevance) · 날짜 (date)(date) · 평점 (rating)(rating) · 조회수 (viewCount)(viewCount) · 제목 (title)(title)
세이프서치 (safeSearch)safeSearch선택""선택지: 없음 (none)(none) · 보통 (moderate)(moderate) · 엄격 (strict)(strict)

갱신 필드 (updateFields) 하위 필드

파라미터이름타입기본값설명
설명 (description)description문자열""표현식 사용 가능(전체 문자열 표현식만 — 부분 삽입 미지원)
태그 (tags)tags문자열""쉼표 구분 태그(내부에서 배열로 분해)
공개 상태 (privacyStatus)privacyStatus선택private선택지: 비공개 (private)(private) · 공개 (public)(public) · 일부 공개 (unlisted)(unlisted)
예약 게시 (publishAt)publishAt날짜/시간""RFC 3339 예약 게시 시각(privacyStatus=private 필요). 표현식 가능
기본 언어 (defaultLanguage)defaultLanguage문자열""
녹화일 (recordingDate)recordingDate날짜/시간""
임베드 허용 (embeddable)embeddable불리언false
아동용 자가선언 (selfDeclaredMadeForKids)selfDeclaredMadeForKids불리언false

옵션 (options) 하위 필드

파라미터이름타입기본값설명
설명 (description)description문자열""
태그 (tags)tags문자열""
공개 상태 (privacyStatus)privacyStatus선택private선택지: 비공개 (private)(private) · 공개 (public)(public) · 일부 공개 (unlisted)(unlisted)
예약 게시 (publishAt)publishAt날짜/시간""
아동용 자가선언 (selfDeclaredMadeForKids)selfDeclaredMadeForKids불리언false

옵션 (options) 하위 필드

파라미터이름타입기본값설명
위치 (position)position숫자0재생목록 내 삽입 위치(0=맨 앞)
메모 (note)note문자열""
시작 (startAt)startAt문자열""재생 시작 오프셋(예: PT1M30S)
종료 (endAt)endAt문자열""

ℹ️ 업로드 입력: 앞 마이크로서비스(HTTP Request/파일 노드 등)가 동영상 바이트를 파일 저장소에 저장하고 fileRef 를 출력해야 합니다. 이 노드는 fileRef 를 스트리밍으로 읽어 resumable upload 합니다(바이트는 Kafka/노드 간에 흐르지 않음).

ℹ️ 인증: youTubeOAuth2Api 자격증명(Google 계정 연결)이 필요합니다. 동영상 업로드/수정/삭제·평가는 youtube 또는 youtube.force-ssl 스코프가 필요합니다. 미지원: channel update/uploadBanner, playlist create/delete/update, playlistItem get/delete, Custom API Call.