{
  "name": "🔁 Copy all YouTube playlists from one channel to another",
  "nodes": [
    {
      "id": "8800e21d-1509-4343-bb38-35ade84e4a0d",
      "name": "When clicking ‘Test workflow’",
      "type": "n8n-nodes-base.manualTrigger",
      "position": [
        -1060,
        180
      ]
    },
    {
      "id": "5dd198e6-4558-4236-9ed5-b1d44305e0e3",
      "name": "Remove private items",
      "type": "n8n-nodes-base.filter",
      "position": [
        40,
        180
      ]
    },
    {
      "id": "d833d617-3d12-4853-968b-9675b2008351",
      "name": "Keep only the playlist id",
      "type": "n8n-nodes-base.set",
      "position": [
        260,
        -20
      ]
    },
    {
      "id": "d242e4b9-c40e-4708-8eaa-70a777bcc6ce",
      "name": "Keep only the video id",
      "type": "n8n-nodes-base.set",
      "position": [
        260,
        180
      ]
    },
    {
      "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
      ]
    },
    {
      "id": "ac018739-a908-43ef-8e4a-4ce4af2f00a2",
      "name": "Get all playlists from origin channel",
      "type": "n8n-nodes-base.youTube",
      "position": [
        -840,
        180
      ]
    },
    {
      "id": "4e0a1f4f-19e3-4733-8915-0fcff3763dab",
      "name": "Get playlist items from original playlist",
      "type": "n8n-nodes-base.youTube",
      "position": [
        -180,
        180
      ]
    },
    {
      "id": "fa3ff44c-ad35-43ce-8653-0304cf086365",
      "name": "Create new playlist in the target channel",
      "type": "n8n-nodes-base.youTube",
      "position": [
        40,
        -20
      ]
    },
    {
      "id": "5438bdbd-472d-4526-8617-cd3b25e9a469",
      "name": "Add items to target playlist",
      "type": "n8n-nodes-base.youTube",
      "position": [
        700,
        155
      ]
    },
    {
      "id": "2401dbbc-582a-48f9-bea9-5f6d1b0996b3",
      "name": "Format fields properly",
      "type": "n8n-nodes-base.set",
      "position": [
        -620,
        180
      ]
    },
    {
      "id": "f5429621-cde3-4c6d-a432-11c7e0e33508",
      "name": "Sticky Note",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -1060,
        -260
      ],
      "parameters": {
        "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 "
      }
    },
    {
      "id": "94d26808-fbec-4914-a100-7f78caa6f240",
      "name": "Sticky Note1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -860,
        360
      ],
      "parameters": {
        "width": 260,
        "height": null,
        "content": "## 👆👆👆\n## ADD YOUR ORIGIN CHANNEL CREDENTIAL HERE"
      }
    },
    {
      "id": "58c42f5e-e403-4460-bf30-a8f61c96c8fc",
      "name": "Sticky Note2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -200,
        360
      ],
      "parameters": {
        "width": 260,
        "height": null,
        "content": "## 👆👆👆\n## ADD YOUR ORIGIN CHANNEL CREDENTIAL HERE"
      }
    },
    {
      "id": "25dba347-a6a4-4883-a2ac-c018665a8dfa",
      "name": "Sticky Note3",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        680,
        360
      ],
      "parameters": {
        "width": 260,
        "height": null,
        "content": "## 👆👆👆\n## ADD YOUR TARGET CHANNEL CREDENTIAL HERE"
      }
    },
    {
      "id": "b07f3c7d-dfa2-4e81-b195-091495ce0cd5",
      "name": "Sticky Note4",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        20,
        -200
      ],
      "parameters": {
        "width": 260,
        "height": null,
        "content": "## ADD YOUR TARGET CHANNEL CREDENTIAL HERE\n## 👇👇👇"
      }
    },
    {
      "id": "0604092e-965c-41a2-bc91-10f612a48f79",
      "name": "Loop over playlists",
      "type": "n8n-nodes-base.splitInBatches",
      "position": [
        -400,
        180
      ]
    }
  ],
  "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
          }
        ]
      ]
    }
  }
}