품질 및 언어 필터링 기반 자동화 Sonarr 누락 에피소드 파인더
중급
이것은Personal Productivity분야의자동화 워크플로우로, 10개의 노드를 포함합니다.주로 If, Set, Code, SplitOut, HttpRequest 등의 노드를 사용하며. 품질 및 언어 필터링이 포함된 자동화된 Sonarr 누락 에피소드 파인더
사전 요구사항
- •대상 API의 인증 정보가 필요할 수 있음
카테고리
워크플로우 미리보기
노드 연결 관계를 시각적으로 표시하며, 확대/축소 및 이동을 지원합니다
워크플로우 내보내기
다음 JSON 구성을 복사하여 n8n에 가져오면 이 워크플로우를 사용할 수 있습니다
{
"meta": {
"instanceId": "524db9d6f45a6821f11407ee382e8ef798434d93ef64e0c8c3a108540b9322a6"
},
"nodes": [
{
"id": "b7575322-a8cd-48b1-8989-59e8c10f3fb3",
"name": "정보",
"type": "n8n-nodes-base.set",
"position": [
-220,
100
],
"parameters": {
"options": {},
"assignments": {
"assignments": [
{
"id": "e03dba6d-c6c4-407b-b65b-15aacb8a4a32",
"name": "urlSonar",
"type": "string",
"value": "http://192.168.31.204:8989"
},
{
"id": "976f2fe4-2d27-43f7-8fba-5f992ab0894e",
"name": "apikey",
"type": "string",
"value": "j7oi8oiji7yih85765tg646ghft6ffd6"
},
{
"id": "00cdb214-7b97-4037-aca9-36569403b340",
"name": "quality",
"type": "string",
"value": "WEBDL-1080p"
},
{
"id": "01c442c9-3ecb-43b1-a112-3cd41c62b232",
"name": "languages",
"type": "string",
"value": "Portuguese (Brazil)"
}
]
}
},
"typeVersion": 3.4
},
{
"id": "bdd74c08-4891-4c55-81a6-1da3c72e8ef5",
"name": "필드 편집",
"type": "n8n-nodes-base.set",
"position": [
220,
100
],
"parameters": {
"options": {},
"assignments": {
"assignments": [
{
"id": "598bf523-e5f2-4976-9b66-35e2918d9bdd",
"name": "records",
"type": "array",
"value": "={{ $json.records }}"
}
]
}
},
"typeVersion": 3.4
},
{
"id": "8b898b4a-8a53-48cc-8917-2c406e64c95f",
"name": "분할",
"type": "n8n-nodes-base.splitOut",
"position": [
440,
100
],
"parameters": {
"options": {},
"fieldToSplitOut": "records"
},
"typeVersion": 1
},
{
"id": "117443a3-7a83-4c50-a4af-693c11dd6e3c",
"name": "일정 트리거",
"type": "n8n-nodes-base.scheduleTrigger",
"position": [
-440,
100
],
"parameters": {
"rule": {
"interval": [
{
"field": "hours",
"hoursInterval": 12
}
]
}
},
"typeVersion": 1.2
},
{
"id": "55253fdd-9f78-428d-8fd4-d5f4b74c78ef",
"name": "재정의 및 다운로드 대기열 추가",
"type": "n8n-nodes-base.httpRequest",
"onError": "continueErrorOutput",
"maxTries": 3,
"position": [
1100,
-100
],
"parameters": {
"url": "={{ $('info').item.json.urlSonar }}/api/v3/release",
"method": "POST",
"options": {},
"jsonBody": "={{ \n JSON.stringify({\n indexerId: $('Loop Over Items').item.json.indexerId,\n guid: $('Loop Over Items').item.json.guid,\n seriesId: $('Loop Over Items').item.json.mappedSeriesId,\n episodeIds: $('Loop Over Items').item.json.mappedEpisodeInfo.map(e => e.id),\n quality: {\n quality: {\n id: $('Loop Over Items').item.json.quality.quality.id,\n name: $('Loop Over Items').item.json.quality.quality.name,\n source: $('Loop Over Items').item.json.quality.quality.source,\n resolution: $('Loop Over Items').item.json.quality.quality.resolution\n },\n revision: {\n version: $('Loop Over Items').item.json.quality.revision.version,\n real: $('Loop Over Items').item.json.quality.revision.real,\n isRepack: $('Loop Over Items').item.json.quality.revision.isRepack\n }\n },\n languages: [\n {\n id: $('Loop Over Items').item.json.languages[0].id,\n name: $('Loop Over Items').item.json.languages[0].name\n }\n ],\n downloadClientId: null,\n shouldOverride: true\n })\n}}\n",
"sendBody": true,
"sendQuery": true,
"specifyBody": "json",
"queryParameters": {
"parameters": [
{
"name": "apikey",
"value": "={{ $('info').item.json.apikey }}"
},
{}
]
}
},
"retryOnFail": true,
"typeVersion": 4.2,
"alwaysOutputData": false
},
{
"id": "da00208f-c5f7-4276-8c66-af5566e387ad",
"name": "이 시즌의 모든 에피소드에 대한 대화형 검색",
"type": "n8n-nodes-base.httpRequest",
"position": [
1100,
100
],
"parameters": {
"url": "={{ $('info').item.json.urlSonar }}/api/v3/release",
"options": {},
"sendQuery": true,
"queryParameters": {
"parameters": [
{
"name": "seriesId",
"value": "={{ $('Split Out').item.json.seriesId }}"
},
{
"name": "seasonNumber",
"value": "={{ $('Split Out').item.json.seasonNumber }}"
},
{
"name": "apikey",
"value": "={{ $('info').item.json.apikey }}"
}
]
}
},
"executeOnce": true,
"notesInFlow": false,
"typeVersion": 4.2
},
{
"id": "df7c8bf5-ecc7-4af7-8668-6c47cc86bdf9",
"name": "누락 에피소드 확인",
"type": "n8n-nodes-base.httpRequest",
"position": [
0,
100
],
"parameters": {
"url": "={{ $('info').item.json.urlSonar }}/api/v3/wanted/missing",
"options": {},
"sendQuery": true,
"sendHeaders": true,
"queryParameters": {
"parameters": [
{
"name": "page",
"value": "1"
},
{
"name": "pageSize",
"value": "100"
},
{
"name": "sortDirection",
"value": "descending"
},
{
"name": "includeSeries",
"value": "false"
},
{
"name": "includeImages",
"value": "false"
},
{
"name": "monitored",
"value": "true"
},
{
"name": "apikey",
"value": "={{ $('info').item.json.apikey }}"
}
]
},
"headerParameters": {
"parameters": [
{
"name": "accept",
"value": "application/json"
}
]
}
},
"executeOnce": false,
"typeVersion": 4.2
},
{
"id": "971e172b-1961-41b3-ad0b-0936e7a2c591",
"name": "품질 및 언어 일치 검증",
"type": "n8n-nodes-base.if",
"position": [
1320,
175
],
"parameters": {
"options": {},
"conditions": {
"options": {
"version": 2,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "faa46e5b-40ef-4200-9827-50e7d7666f24",
"operator": {
"name": "filter.operator.equals",
"type": "string",
"operation": "equals"
},
"leftValue": "={{ $json.quality.quality.name }}",
"rightValue": "={{ $('info').item.json.quality }}"
},
{
"id": "6caeb8cc-f152-497b-9f6b-4a6526c3df00",
"operator": {
"name": "filter.operator.equals",
"type": "string",
"operation": "equals"
},
"leftValue": "={{ $json.languages[0].name }}",
"rightValue": "={{ $('info').item.json.languages }}"
}
]
}
},
"executeOnce": false,
"typeVersion": 2.2
},
{
"id": "7ef44e0f-65a9-4579-9599-de626165d022",
"name": "시리즈 필터링",
"type": "n8n-nodes-base.code",
"position": [
660,
100
],
"parameters": {
"jsCode": "const seenSeasons = new Set();\nconst uniqueItems = [];\n\nfor (const item of $input.all()) {\n const key = `${item.json.seriesId}-${item.json.seasonNumber}`;\n\n if (!seenSeasons.has(key)) {\n item.json.myNewField = 1;\n uniqueItems.push(item);\n seenSeasons.add(key);\n }\n}\n\nuniqueItems.sort((a, b) => {\n if (a.json.seriesId !== b.json.seriesId) {\n return a.json.seriesId - b.json.seriesId;\n }\n return a.json.seasonNumber - b.json.seasonNumber;\n});\n\nreturn uniqueItems;"
},
"typeVersion": 2
},
{
"id": "3bf70dc2-c110-44b8-a9b1-59c3f8ce7e01",
"name": "항목 순환",
"type": "n8n-nodes-base.splitInBatches",
"position": [
880,
100
],
"parameters": {
"options": {}
},
"typeVersion": 3
}
],
"pinData": {},
"connections": {
"b7575322-a8cd-48b1-8989-59e8c10f3fb3": {
"main": [
[
{
"node": "df7c8bf5-ecc7-4af7-8668-6c47cc86bdf9",
"type": "main",
"index": 0
}
]
]
},
"8b898b4a-8a53-48cc-8917-2c406e64c95f": {
"main": [
[
{
"node": "7ef44e0f-65a9-4579-9599-de626165d022",
"type": "main",
"index": 0
}
]
]
},
"bdd74c08-4891-4c55-81a6-1da3c72e8ef5": {
"main": [
[
{
"node": "8b898b4a-8a53-48cc-8917-2c406e64c95f",
"type": "main",
"index": 0
}
]
]
},
"7ef44e0f-65a9-4579-9599-de626165d022": {
"main": [
[
{
"node": "3bf70dc2-c110-44b8-a9b1-59c3f8ce7e01",
"type": "main",
"index": 0
}
]
]
},
"3bf70dc2-c110-44b8-a9b1-59c3f8ce7e01": {
"main": [
[
{
"node": "55253fdd-9f78-428d-8fd4-d5f4b74c78ef",
"type": "main",
"index": 0
}
],
[
{
"node": "da00208f-c5f7-4276-8c66-af5566e387ad",
"type": "main",
"index": 0
}
]
]
},
"117443a3-7a83-4c50-a4af-693c11dd6e3c": {
"main": [
[
{
"node": "b7575322-a8cd-48b1-8989-59e8c10f3fb3",
"type": "main",
"index": 0
}
]
]
},
"df7c8bf5-ecc7-4af7-8668-6c47cc86bdf9": {
"main": [
[
{
"node": "bdd74c08-4891-4c55-81a6-1da3c72e8ef5",
"type": "main",
"index": 0
}
]
]
},
"55253fdd-9f78-428d-8fd4-d5f4b74c78ef": {
"main": [
[],
[]
]
},
"971e172b-1961-41b3-ad0b-0936e7a2c591": {
"main": [
[
{
"node": "3bf70dc2-c110-44b8-a9b1-59c3f8ce7e01",
"type": "main",
"index": 0
}
],
[]
]
},
"da00208f-c5f7-4276-8c66-af5566e387ad": {
"main": [
[
{
"node": "971e172b-1961-41b3-ad0b-0936e7a2c591",
"type": "main",
"index": 0
}
]
]
}
}
}자주 묻는 질문
이 워크플로우를 어떻게 사용하나요?
위의 JSON 구성 코드를 복사하여 n8n 인스턴스에서 새 워크플로우를 생성하고 "JSON에서 가져오기"를 선택한 후, 구성을 붙여넣고 필요에 따라 인증 설정을 수정하세요.
이 워크플로우는 어떤 시나리오에 적합한가요?
중급 - 개인 생산성
유료인가요?
이 워크플로우는 완전히 무료이며 직접 가져와 사용할 수 있습니다. 다만, 워크플로우에서 사용하는 타사 서비스(예: OpenAI API)는 사용자 직접 비용을 지불해야 할 수 있습니다.
관련 워크플로우 추천
LinkedIn 직업 검색
LinkedIn 직업 검색: 자동 이력서 매칭(GPT/Gemini) + 취업서생성기 + Telegram 알림
If
Set
Code
+
If
Set
Code
33 노드Hojjat Jashnniloofar
개인 생산성
여러 채용 사이트의 구직 활동 자동화
5개 채용 플랫폼 및 AI 이력서 생성기를 사용한 구직 및 지원 자동화
If
Set
Code
+
If
Set
Code
34 노드Gerald Denor
개인 생산성
AI 자기소개서를 사용한 직업 검색 자동화
Google Jobs, RemoteOK 및 GPT-3.5를 사용한 AI 자기소개서 포함 채용 공고 검색 자동화
If
Set
Code
+
If
Set
Code
17 노드Shelly-Ann Davy
개인 생산성
Mistral AI, LinkedIn 및 Google Sheets를 사용한 구직 활동 및 이력서 맞춤화 자동화
Mistral AI, LinkedIn 및 Google Sheets를 사용한 채용 공고 검색 및 이력서 맞춤화 자동화
Set
Code
Html
+
Set
Code
Html
46 노드Jordan Hoyle
개인 생산성
전 세계 휴일 충돌 검출 및 회의 재정렬
Google Calendar와 Slack을 사용하여 공휴일 충돌을 검출하고 회의 재정렬을 제안
If
Set
Code
+
If
Set
Code
23 노드Takuya Ojima
개인 생산성
콘텐츠생성기 v3
AI驱动블로그자동화:사용GPT-4생성并게시SEO기사至WordPress및Twitter
If
Set
Code
+
If
Set
Code
144 노드Jay Emp0
콘텐츠 제작