유튜브
통신/외부외부 서비스일부 옵션 미지원 라벨 있음
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 | 불리언 | false | true 면 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 | 불리언 | false | channel 검색: 콘텐츠 소유자 관리 채널 |
옵션 (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.