
🔁 Copy all YouTube playlists from one channel to another
説明
Categories
📢 Marketing
Nodes Used
n8n-nodes-base.setn8n-nodes-base.setn8n-nodes-base.setn8n-nodes-base.mergen8n-nodes-base.filtern8n-nodes-base.youTuben8n-nodes-base.youTuben8n-nodes-base.youTuben8n-nodes-base.youTuben8n-nodes-base.stickyNote
Price無料
Views0
最終更新11/28/2025
workflow.json
{
"id": "liuPFewuxM0EKCHB",
"meta": {
"instanceId": "a059b3dfdab56aa587cc6a2c8635f6f2700cf0c7064dbfb5981c26f7ad9eab88",
"templateCredsSetupCompleted": true
},
"name": "🔁 Copy all YouTube playlists from one channel to another",
"tags": [],
"nodes": [
{
"id": "8800e21d-1509-4343-bb38-35ade84e4a0d",
"name": "When clicking ‘Test workflow’",
"type": "n8n-nodes-base.manualTrigger",
"position": [
-1060,
180
],
"parameters": {},
"typeVersion": 1
},
{
"id": "5dd198e6-4558-4236-9ed5-b1d44305e0e3",
"name": "Remove private items",
"type": "n8n-nodes-base.filter",
"position": [
40,
180
],
"parameters": {
"options": {},
"conditions": {
"options": {
"version": 2,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "154d991a-b2aa-4764-b5d1-af43a58777db",
"operator": {
"type": "string",
"operation": "notEquals"
},
"leftValue": "={{ $json.status.privacyStatus }}",
"rightValue": "private"
}
]
}
},
"typeVersion": 2.2
},
{
"id": "d833d617-3d12-4853-968b-9675b2008351",
"name": "Keep only the playlist id",
"type": "n8n-nodes-base.set",
"position": [
260,
-20
],
"parameters": {
"options": {},
"assignments": {
"assignments": [
{
"id": "88dd068e-6aa3-4b87-86a9-7509145efd4e",
"name": "playlist_id",
"type": "string",
"value": "={{ $json.id }}"
}
]
}
},
"typeVersion": 3.4
},
{
"id": "d242e4b9-c40e-4708-8eaa-70a777bcc6ce",
"name": "Keep only the video id",
"type": "n8n-nodes-base.set",
"position": [
260,
180
],
"parameters": {
"options": {},
"assignments": {
"assignments": [
{
"id": "04d39c63-eb09-44a3-aca4-e6558bc831a3",
"name": "video_id",
"type": "string",
"value": "={{ $json.contentDetails.videoId }}"
}
]
}
},
"typeVersion": 3.4
},
{
"id": "90da5397-e9f2-4f92-ab4d-74bd8ac5fece",
"name": "Join the playlist and video id in the same item",
"type": "n8n-nodes-base.merge",
"position": [
480,
80
],
"parameters": {
"mode": "combine",
"options": {},
"combineBy": "combineAll"
},
"typeVersion": 3.1
},
{
"id": "ac018739-a908-43ef-8e4a-4ce4af2f00a2",
"name": "Get all playlists from origin channel",
"type": "n8n-nodes-base.youTube",
"position": [
-840,
180
],
"parameters": {
"filters": {},
"options": {},
"resource": "playlist",
"returnAll": true
},
"credentials": {
"youTubeOAuth2Api": {
"id": "bJCjudWjB0FmcvHu",
"name": "YouTube account"
}
},
"retryOnFail": true,
"typeVersion": 1,
"waitBetweenTries": 5000
},
{
"id": "4e0a1f4f-19e3-4733-8915-0fcff3763dab",
"name": "Get playlist items from original playlist",
"type": "n8n-nodes-base.youTube",
"position": [
-180,
180
],
"parameters": {
"part": [
"contentDetails",
"status"
],
"options": {},
"resource": "playlistItem",
"operation": "getAll",
"returnAll": true,
"playlistId": "={{ $json.id }}"
},
"credentials": {
"youTubeOAuth2Api": {
"id": "bJCjudWjB0FmcvHu",
"name": "YouTube account"
}
},
"retryOnFail": true,
"typeVersion": 1,
"waitBetweenTries": 5000
},
{
"id": "fa3ff44c-ad35-43ce-8653-0304cf086365",
"name": "Create new playlist in the target channel",
"type": "n8n-nodes-base.youTube",
"position": [
40,
-20
],
"parameters": {
"title": "={{ $json.title }}",
"options": {},
"resource": "playlist",
"operation": "create"
},
"credentials": {
"youTubeOAuth2Api": {
"id": "bJCjudWjB0FmcvHu",
"name": "Sample YouTube account"
}
},
"retryOnFail": false,
"typeVersion": 1,
"waitBetweenTries": 5000
},
{
"id": "5438bdbd-472d-4526-8617-cd3b25e9a469",
"name": "Add items to target playlist",
"type": "n8n-nodes-base.youTube",
"onError": "continueRegularOutput",
"position": [
700,
155
],
"parameters": {
"options": {},
"videoId": "={{ $json.video_id }}",
"resource": "playlistItem",
"playlistId": "={{ $json.playlist_id }}"
},
"credentials": {
"youTubeOAuth2Api": {
"id": "bJCjudWjB0FmcvHu",
"name": "Sample YouTube account"
}
},
"retryOnFail": true,
"typeVersion": 1,
"waitBetweenTries": 5000
},
{
"id": "2401dbbc-582a-48f9-bea9-5f6d1b0996b3",
"name": "Format fields properly",
"type": "n8n-nodes-base.set",
"position": [
-620,
180
],
"parameters": {
"options": {},
"assignments": {
"assignments": [
{
"id": "0d59b712-8fdd-44cd-9759-f0fdd06dbf32",
"name": "id",
"type": "string",
"value": "={{ $json.id }}"
},
{
"id": "f36f4a16-6783-4da4-a9b6-993ca8f4e342",
"name": "title",
"type": "string",
"value": "={{ $json.snippet.title }}"
}
]
}
},
"typeVersion": 3.4
},
{
"id": "f5429621-cde3-4c6d-a432-11c7e0e33508",
"name": "Sticky Note",
"type": "n8n-nodes-base.stickyNote",
"position": [
-1060,
-260
],
"parameters": {
"color": 3,
"width": 880,
"height": 400,
"content": "## 🔁 COPY ALL YOUTUBE PLAYLISTS FROM ONE CHANNEL TO ANOTHER\n\n### ℹ️ ABOUT THIS WORKFLOW\nThis workflow will copy all user-created playlists from one YouTube channel to another.\n\n### 🛠️ SETUP\n1. Create two YouTube credentials: one for each channel.\n2. Add the credentials to the appropriate nodes, as indicated in the sticky notes next to them.\n3. Click \"Test workflow\" to run it.\n\n### ⚠️ KNOWN LIMITATIONS\n- Because of technical difficulties, this workflow doesn't copy the automatic playlists such as Watch Later or Liked Videos. I intend to update this workflow if these problems are resolved.\n- You should be aware of your YouTube API quota. This workflow can fail if you reach your quota, in which case, you should request an increase in your quota if possible."
},
"typeVersion": 1
},
{
"id": "94d26808-fbec-4914-a100-7f78caa6f240",
"name": "Sticky Note1",
"type": "n8n-nodes-base.stickyNote",
"position": [
-860,
360
],
"parameters": {
"color": 4,
"width": 260,
"content": "## 👆👆👆\n## ADD YOUR ORIGIN CHANNEL CREDENTIAL HERE"
},
"typeVersion": 1
},
{
"id": "58c42f5e-e403-4460-bf30-a8f61c96c8fc",
"name": "Sticky Note2",
"type": "n8n-nodes-base.stickyNote",
"position": [
-200,
360
],
"parameters": {
"color": 4,
"width": 260,
"content": "## 👆👆👆\n## ADD YOUR ORIGIN CHANNEL CREDENTIAL HERE"
},
"typeVersion": 1
},
{
"id": "25dba347-a6a4-4883-a2ac-c018665a8dfa",
"name": "Sticky Note3",
"type": "n8n-nodes-base.stickyNote",
"position": [
680,
360
],
"parameters": {
"color": 2,
"width": 260,
"content": "## 👆👆👆\n## ADD YOUR TARGET CHANNEL CREDENTIAL HERE"
},
"typeVersion": 1
},
{
"id": "b07f3c7d-dfa2-4e81-b195-091495ce0cd5",
"name": "Sticky Note4",
"type": "n8n-nodes-base.stickyNote",
"position": [
20,
-200
],
"parameters": {
"color": 2,
"width": 260,
"content": "## ADD YOUR TARGET CHANNEL CREDENTIAL HERE\n## 👇👇👇"
},
"typeVersion": 1
},
{
"id": "0604092e-965c-41a2-bc91-10f612a48f79",
"name": "Loop over playlists",
"type": "n8n-nodes-base.splitInBatches",
"position": [
-400,
180
],
"parameters": {
"options": {}
},
"typeVersion": 3
}
],
"active": false,
"pinData": {},
"settings": {
"executionOrder": "v1"
},
"versionId": "6befe167-c7f6-42e0-8f9a-ff98888a3463",
"connections": {
"Loop over playlists": {
"main": [
[],
[
{
"node": "Get playlist items from original playlist",
"type": "main",
"index": 0
},
{
"node": "Create new playlist in the target channel",
"type": "main",
"index": 0
}
]
]
},
"Remove private items": {
"main": [
[
{
"node": "Keep only the video id",
"type": "main",
"index": 0
}
]
]
},
"Format fields properly": {
"main": [
[
{
"node": "Loop over playlists",
"type": "main",
"index": 0
}
]
]
},
"Keep only the video id": {
"main": [
[
{
"node": "Join the playlist and video id in the same item",
"type": "main",
"index": 1
}
]
]
},
"Keep only the playlist id": {
"main": [
[
{
"node": "Join the playlist and video id in the same item",
"type": "main",
"index": 0
}
]
]
},
"Add items to target playlist": {
"main": [
[
{
"node": "Loop over playlists",
"type": "main",
"index": 0
}
]
]
},
"When clicking ‘Test workflow’": {
"main": [
[
{
"node": "Get all playlists from origin channel",
"type": "main",
"index": 0
}
]
]
},
"Get all playlists from origin channel": {
"main": [
[
{
"node": "Format fields properly",
"type": "main",
"index": 0
}
]
]
},
"Create new playlist in the target channel": {
"main": [
[
{
"node": "Keep only the playlist id",
"type": "main",
"index": 0
}
]
]
},
"Get playlist items from original playlist": {
"main": [
[
{
"node": "Remove private items",
"type": "main",
"index": 0
}
]
]
},
"Join the playlist and video id in the same item": {
"main": [
[
{
"node": "Add items to target playlist",
"type": "main",
"index": 0
}
]
]
}
}
}