N
n8n Store
Workflow Market
Youtube Personal Channel Videos To Google Sheets - Teamplte

Youtube Personal Channel Videos To Google Sheets - Teamplte

by gregfrolov0 views

Description

Categories

⚙️ Automation

Nodes Used

n8n-nodes-base.ifn8n-nodes-base.ifn8n-nodes-base.ifn8n-nodes-base.setn8n-nodes-base.coden8n-nodes-base.coden8n-nodes-base.splitOutn8n-nodes-base.splitOutn8n-nodes-base.stickyNoten8n-nodes-base.stickyNote
PriceFree
Views0
Last Updated11/28/2025
workflow.json
{
  "id": "2c4YjNJ2NIfVHFhr",
  "meta": {
    "instanceId": "9d3ad2b0b06f15865a1efbbb5bc949adf3892c4b2cb5fbd5ffa4fd9c2ab68ec8",
    "templateCredsSetupCompleted": true
  },
  "name": "Youtube Personal Channel Videos To Google Sheets - Teamplte",
  "tags": [
    {
      "id": "sFkN3c5bNkm7sfcy",
      "name": "templates",
      "createdAt": "2025-10-12T09:24:37.553Z",
      "updatedAt": "2025-10-12T09:24:37.553Z"
    }
  ],
  "nodes": [
    {
      "id": "fa7989b5-a630-4ade-a7ac-1b2fe09052aa",
      "name": "Get My Channel",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        32,
        -80
      ],
      "parameters": {
        "url": "=https://www.googleapis.com/youtube/v3/channels",
        "options": {},
        "sendQuery": true,
        "authentication": "predefinedCredentialType",
        "queryParameters": {
          "parameters": [
            {
              "name": "part",
              "value": "contentDetails"
            },
            {
              "name": "mine",
              "value": "true"
            }
          ]
        },
        "nodeCredentialType": "googleOAuth2Api"
      },
      "credentials": {
        "googleOAuth2Api": {
          "id": "gFUvx5opUIrbaRJ7",
          "name": "Google account"
        }
      },
      "retryOnFail": false,
      "typeVersion": 4.2
    },
    {
      "id": "d8272734-2d3d-4b5c-a5e0-defcaa7c2db8",
      "name": "List Uploads",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        704,
        -144
      ],
      "parameters": {
        "url": "=https://www.googleapis.com/youtube/v3/playlistItems",
        "options": {},
        "sendQuery": true,
        "authentication": "predefinedCredentialType",
        "queryParameters": {
          "parameters": [
            {
              "name": "part",
              "value": "contentDetails"
            },
            {
              "name": "maxResults",
              "value": "={{ $json.per_page }}"
            },
            {
              "name": "=playlistId",
              "value": "={{ $json.playlistId }}"
            },
            {
              "name": "pageToken",
              "value": "={{ $json.nextPageToken }}"
            }
          ]
        },
        "nodeCredentialType": "googleOAuth2Api"
      },
      "credentials": {
        "googleOAuth2Api": {
          "id": "gFUvx5opUIrbaRJ7",
          "name": "Google account"
        }
      },
      "retryOnFail": false,
      "typeVersion": 4.2,
      "alwaysOutputData": false
    },
    {
      "id": "842c0a1b-e35c-4b65-85d6-aafcb5fc9387",
      "name": "If",
      "type": "n8n-nodes-base.if",
      "position": [
        1600,
        -80
      ],
      "parameters": {
        "options": {},
        "conditions": {
          "options": {
            "version": 2,
            "leftValue": "",
            "caseSensitive": true,
            "typeValidation": "loose"
          },
          "combinator": "and",
          "conditions": [
            {
              "id": "9f6aa04b-801a-4b18-978d-3f359e9acb5f",
              "operator": {
                "type": "number",
                "operation": "gte"
              },
              "leftValue": "={{ $json.current_page }}",
              "rightValue": "={{ Math.ceil($('List Uploads').last().json.pageInfo.totalResults / $('List Uploads').last().json.pageInfo.resultsPerPage) }}\n"
            }
          ]
        },
        "looseTypeValidation": true
      },
      "typeVersion": 2.2
    },
    {
      "id": "1654cda6-045d-4623-8c90-bd98c809831c",
      "name": "Loop Vars",
      "type": "n8n-nodes-base.code",
      "position": [
        480,
        -80
      ],
      "parameters": {
        "jsCode": "let vars;\ntry {\n  vars = $('Loop Vars').last().json;\n} catch (e) {\n  vars = $('Variables').last().json;\n}\n\nconst next = Number(vars?.current_page ?? 1) + 1;\nvars.current_page = next;\ntry {\n  vars.nextPageToken = $('List Uploads').last().json.nextPageToken;\n} catch (e) {\n  vars.nextPageToken = '';\n}\n\ntry {\n  ids = $('Collect ids').last().json.ids;\n} catch (e) {\n  ids = \"\";\n}\n\nreturn [\n  {\n    json: { ...vars, current_page: next, ids: ids }\n  }\n];\n"
      },
      "typeVersion": 2
    },
    {
      "id": "61d3c00b-df9c-45ba-97cf-6897c097612d",
      "name": "Update Posts",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        1152,
        -144
      ],
      "parameters": {
        "columns": {
          "value": {
            "published": "={{ $json.contentDetails.videoPublishedAt }}",
            "youtube_id": "={{ $json.contentDetails.videoId }}"
          },
          "schema": [
            {
              "id": "youtube_id",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "youtube_id",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "published",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "published",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            }
          ],
          "mappingMode": "defineBelow",
          "matchingColumns": [
            "youtube_id"
          ],
          "attemptToConvertTypes": false,
          "convertFieldsToString": false
        },
        "options": {},
        "operation": "appendOrUpdate",
        "sheetName": {
          "__rl": true,
          "mode": "list",
          "value": 359175774,
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1pU-PVyUTzzXYSd7mItRdakLRIqISeHdjDkUaLtAa8jQ/edit#gid=359175774",
          "cachedResultName": "Videos"
        },
        "documentId": {
          "__rl": true,
          "mode": "list",
          "value": "1pU-PVyUTzzXYSd7mItRdakLRIqISeHdjDkUaLtAa8jQ",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1pU-PVyUTzzXYSd7mItRdakLRIqISeHdjDkUaLtAa8jQ/edit?usp=drivesdk",
          "cachedResultName": "OzWebExpert Pages"
        }
      },
      "credentials": {
        "googleSheetsOAuth2Api": {
          "id": "zR1Pjt2V4y1fIz3v",
          "name": "Google Sheets account"
        }
      },
      "typeVersion": 4.7
    },
    {
      "id": "19256d37-b425-4001-ab24-9b93a3354654",
      "name": "Variables",
      "type": "n8n-nodes-base.set",
      "position": [
        256,
        -80
      ],
      "parameters": {
        "mode": "raw",
        "options": {},
        "jsonOutput": "={\n  \"per_page\": 50,\n  \"current_page\": 0,\n  \"nextPageToken\":\"\",\n  \"playlistId\": \"{{ $json.items[0].contentDetails.relatedPlaylists.uploads }}\",\n\"ids\":\"\"\n}"
      },
      "typeVersion": 3.4
    },
    {
      "id": "b089728f-92d1-4def-bdd0-3cc72a037aee",
      "name": "Split Out",
      "type": "n8n-nodes-base.splitOut",
      "position": [
        928,
        -144
      ],
      "parameters": {
        "options": {},
        "fieldToSplitOut": "items"
      },
      "typeVersion": 1
    },
    {
      "id": "bbc91a58-514e-4762-b20d-beea4b222c34",
      "name": "Sticky Note",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -864,
        -528
      ],
      "parameters": {
        "color": 4,
        "width": 592,
        "height": 496,
        "content": "## Sync your YouTube channel videos to Google Sheets\nAutomatically fetch video data (title, tags, captions, publish date, etc.) from your YouTube channel and store it in Google Sheets — perfect for creators and marketers who want an organised content database.\n\n@[youtube](vOmqW2-T1Xg)"
      },
      "typeVersion": 1
    },
    {
      "id": "0ae8a1c7-2059-4e03-8ade-fb4e1b1cc85b",
      "name": "Get Video Details",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        2272,
        -80
      ],
      "parameters": {
        "url": "https://www.googleapis.com/youtube/v3/videos",
        "options": {},
        "sendQuery": true,
        "authentication": "predefinedCredentialType",
        "queryParameters": {
          "parameters": [
            {
              "name": "part",
              "value": "snippet,status"
            },
            {
              "name": "=id",
              "value": "={{ $json.youtube_id }}"
            }
          ]
        },
        "nodeCredentialType": "googleOAuth2Api"
      },
      "credentials": {
        "googleOAuth2Api": {
          "id": "gFUvx5opUIrbaRJ7",
          "name": "Google account"
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "8a7317e9-0501-44a3-8406-6b155baaa5db",
      "name": "Collect ids",
      "type": "n8n-nodes-base.code",
      "position": [
        1376,
        -144
      ],
      "parameters": {
        "jsCode": "// Берём vars из узла \"Loop Vars\" (если там уже есть накопленные ids)\nconst vars = $('Loop Vars').last().json;\nconst prevIds = (vars.ids || '').split(',').map(s => s.trim()).filter(Boolean);\n\n// Собираем все youtube_id из текущего входа разом\nconst newIds = $input.all().map(i => i.json.youtube_id).filter(Boolean);\n\n// Объединяем + убираем дубли\nconst idsString = [...new Set([...prevIds, ...newIds])].join(',');\nvars.ids = idsString;\n\n// Отдаём один item с накопленной строкой\nreturn [{ json: { ...vars, ids: idsString } }];\n"
      },
      "typeVersion": 2
    },
    {
      "id": "ff70a0e4-4110-4a5a-a713-c71df0c002ba",
      "name": "Update Posts1",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        2720,
        -80
      ],
      "parameters": {
        "columns": {
          "value": {
            "tags": "={{ $json.snippet.tags }}",
            "title": "={{ $json.snippet.title }}",
            "maxres": "={{ $json.snippet.thumbnails.maxres.url }}",
            "categoryId": "={{ $json.snippet.categoryId }}",
            "youtube_id": "={{ $json.id }}",
            "description": "={{ $json.snippet.description }}",
            "uploadStatus": "={{ $json.status.uploadStatus }}",
            "privacyStatus": "={{ $json.status.privacyStatus }}"
          },
          "schema": [
            {
              "id": "youtube_id",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "youtube_id",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "published",
              "type": "string",
              "display": true,
              "removed": true,
              "required": false,
              "displayName": "published",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "categoryId",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "categoryId",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "title",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "title",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "description",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "description",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "maxres",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "maxres",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "tags",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "tags",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "uploadStatus",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "uploadStatus",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "privacyStatus",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "privacyStatus",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            }
          ],
          "mappingMode": "defineBelow",
          "matchingColumns": [
            "youtube_id"
          ],
          "attemptToConvertTypes": false,
          "convertFieldsToString": false
        },
        "options": {},
        "operation": "appendOrUpdate",
        "sheetName": {
          "__rl": true,
          "mode": "list",
          "value": 359175774,
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1pU-PVyUTzzXYSd7mItRdakLRIqISeHdjDkUaLtAa8jQ/edit#gid=359175774",
          "cachedResultName": "Videos"
        },
        "documentId": {
          "__rl": true,
          "mode": "list",
          "value": "1pU-PVyUTzzXYSd7mItRdakLRIqISeHdjDkUaLtAa8jQ",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1pU-PVyUTzzXYSd7mItRdakLRIqISeHdjDkUaLtAa8jQ/edit?usp=drivesdk",
          "cachedResultName": "OzWebExpert Pages"
        }
      },
      "credentials": {
        "googleSheetsOAuth2Api": {
          "id": "zR1Pjt2V4y1fIz3v",
          "name": "Google Sheets account"
        }
      },
      "typeVersion": 4.7
    },
    {
      "id": "c87ef245-2066-4e48-a4e3-f8d97d20102b",
      "name": "Split Out1",
      "type": "n8n-nodes-base.splitOut",
      "position": [
        2496,
        -80
      ],
      "parameters": {
        "options": {},
        "fieldToSplitOut": "items"
      },
      "typeVersion": 1
    },
    {
      "id": "9072a793-652f-41d2-9059-495a9a235246",
      "name": "When clicking ‘Execute workflow’",
      "type": "n8n-nodes-base.manualTrigger",
      "position": [
        -192,
        -80
      ],
      "parameters": {},
      "typeVersion": 1
    },
    {
      "id": "5210628c-409a-4b62-b3ce-04c132008dd8",
      "name": "Get captions text",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        3392,
        -80
      ],
      "parameters": {
        "url": "=https://www.googleapis.com/youtube/v3/captions/{{ $json.items[0].id }}",
        "options": {
          "response": {
            "response": {
              "fullResponse": true,
              "responseFormat": "text"
            }
          }
        },
        "sendQuery": true,
        "sendHeaders": true,
        "authentication": "predefinedCredentialType",
        "queryParameters": {
          "parameters": [
            {
              "name": "tfmt",
              "value": "srt"
            },
            {
              "name": "alt",
              "value": "media"
            }
          ]
        },
        "headerParameters": {
          "parameters": [
            {
              "name": "Accept",
              "value": "text/plain; charset=UTF-8"
            }
          ]
        },
        "nodeCredentialType": "googleOAuth2Api"
      },
      "credentials": {
        "googleOAuth2Api": {
          "id": "gFUvx5opUIrbaRJ7",
          "name": "Google account"
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "250cec31-bb66-4fae-93ce-910650e8484e",
      "name": "Get captions ID",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        2944,
        -80
      ],
      "parameters": {
        "url": "https://www.googleapis.com/youtube/v3/captions",
        "options": {},
        "sendQuery": true,
        "authentication": "predefinedCredentialType",
        "queryParameters": {
          "parameters": [
            {
              "name": "videoId",
              "value": "={{ $json.youtube_id }}"
            }
          ]
        },
        "nodeCredentialType": "googleOAuth2Api"
      },
      "credentials": {
        "googleOAuth2Api": {
          "id": "gFUvx5opUIrbaRJ7",
          "name": "Google account"
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "29966cde-a92e-495a-a2f2-c85c5f6851e0",
      "name": "Update Posts2",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        3616,
        -80
      ],
      "parameters": {
        "columns": {
          "value": {
            "captions": "={{ $json.data }}",
            "youtube_id": "={{ $('Update Posts1').item.json.youtube_id }}"
          },
          "schema": [
            {
              "id": "youtube_id",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "youtube_id",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "published",
              "type": "string",
              "display": true,
              "removed": true,
              "required": false,
              "displayName": "published",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "categoryId",
              "type": "string",
              "display": true,
              "removed": true,
              "required": false,
              "displayName": "categoryId",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "title",
              "type": "string",
              "display": true,
              "removed": true,
              "required": false,
              "displayName": "title",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "description",
              "type": "string",
              "display": true,
              "removed": true,
              "required": false,
              "displayName": "description",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "maxres",
              "type": "string",
              "display": true,
              "removed": true,
              "required": false,
              "displayName": "maxres",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "tags",
              "type": "string",
              "display": true,
              "removed": true,
              "required": false,
              "displayName": "tags",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "uploadStatus",
              "type": "string",
              "display": true,
              "removed": true,
              "required": false,
              "displayName": "uploadStatus",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "privacyStatus",
              "type": "string",
              "display": true,
              "removed": true,
              "required": false,
              "displayName": "privacyStatus",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "thumbnail",
              "type": "string",
              "display": true,
              "removed": true,
              "required": false,
              "displayName": "thumbnail",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "captions",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "captions",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            }
          ],
          "mappingMode": "defineBelow",
          "matchingColumns": [
            "youtube_id"
          ],
          "attemptToConvertTypes": false,
          "convertFieldsToString": false
        },
        "options": {},
        "operation": "appendOrUpdate",
        "sheetName": {
          "__rl": true,
          "mode": "list",
          "value": 359175774,
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1pU-PVyUTzzXYSd7mItRdakLRIqISeHdjDkUaLtAa8jQ/edit#gid=359175774",
          "cachedResultName": "Videos"
        },
        "documentId": {
          "__rl": true,
          "mode": "list",
          "value": "1pU-PVyUTzzXYSd7mItRdakLRIqISeHdjDkUaLtAa8jQ",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1pU-PVyUTzzXYSd7mItRdakLRIqISeHdjDkUaLtAa8jQ/edit?usp=drivesdk",
          "cachedResultName": "OzWebExpert Pages"
        }
      },
      "credentials": {
        "googleSheetsOAuth2Api": {
          "id": "zR1Pjt2V4y1fIz3v",
          "name": "Google Sheets account"
        }
      },
      "typeVersion": 4.7
    },
    {
      "id": "561f7723-66f6-454e-b1fd-1ee2a20faf41",
      "name": "If1",
      "type": "n8n-nodes-base.if",
      "position": [
        3168,
        -80
      ],
      "parameters": {
        "options": {},
        "conditions": {
          "options": {
            "version": 2,
            "leftValue": "",
            "caseSensitive": true,
            "typeValidation": "strict"
          },
          "combinator": "and",
          "conditions": [
            {
              "id": "b6cc377c-c5aa-4c7b-85b1-93a433f6e74d",
              "operator": {
                "type": "string",
                "operation": "notEmpty",
                "singleValue": true
              },
              "leftValue": "={{ $json.items[0].id }}",
              "rightValue": ""
            }
          ]
        }
      },
      "typeVersion": 2.2
    },
    {
      "id": "92f4da57-2e8f-4f32-8e61-bba847a31746",
      "name": "Get row(s) in sheet",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        1824,
        -80
      ],
      "parameters": {
        "options": {},
        "filtersUI": {
          "values": [
            {
              "lookupColumn": "captions"
            },
            {
              "lookupColumn": "privacyStatus"
            },
            {
              "lookupColumn": "uploadStatus"
            }
          ]
        },
        "sheetName": {
          "__rl": true,
          "mode": "list",
          "value": 359175774,
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1pU-PVyUTzzXYSd7mItRdakLRIqISeHdjDkUaLtAa8jQ/edit#gid=359175774",
          "cachedResultName": "Videos"
        },
        "documentId": {
          "__rl": true,
          "mode": "list",
          "value": "1pU-PVyUTzzXYSd7mItRdakLRIqISeHdjDkUaLtAa8jQ",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1pU-PVyUTzzXYSd7mItRdakLRIqISeHdjDkUaLtAa8jQ/edit?usp=drivesdk",
          "cachedResultName": "OzWebExpert Pages"
        }
      },
      "credentials": {
        "googleSheetsOAuth2Api": {
          "id": "zR1Pjt2V4y1fIz3v",
          "name": "Google Sheets account"
        }
      },
      "typeVersion": 4.7,
      "alwaysOutputData": true
    },
    {
      "id": "6c91b57e-b023-4a43-8afe-e174552e24be",
      "name": "If2",
      "type": "n8n-nodes-base.if",
      "position": [
        2048,
        -80
      ],
      "parameters": {
        "options": {},
        "conditions": {
          "options": {
            "version": 2,
            "leftValue": "",
            "caseSensitive": true,
            "typeValidation": "strict"
          },
          "combinator": "and",
          "conditions": [
            {
              "id": "57849dc9-65ca-4ca1-aacd-b8125c4fdf5c",
              "operator": {
                "type": "object",
                "operation": "notEmpty",
                "singleValue": true
              },
              "leftValue": "={{ $json }}",
              "rightValue": ""
            }
          ]
        }
      },
      "typeVersion": 2.2
    },
    {
      "id": "def8b7d8-f66c-4497-8b8b-99b317ba9a64",
      "name": "Sticky Note1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -208,
        -240
      ],
      "parameters": {
        "color": 6,
        "width": 336,
        "height": 128,
        "content": "## Setup Instructions\nConnect your Google account in both HTTP Request and Google Sheets nodes. Replace the sheet URL with your own Google Sheet."
      },
      "typeVersion": 1
    },
    {
      "id": "77276d26-2276-408a-8b1a-fbef31c1c67a",
      "name": "Sticky Note2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -800,
        -16
      ],
      "parameters": {
        "width": 480,
        "height": 144,
        "content": "## Google Sheets Template\nhttps://docs.google.com/spreadsheets/d/1xTtkkA8ZWGOzu9eisKyY6CcYM6xF9kzS-5HNGSe-XOs/edit?gid=0#gid=0"
      },
      "typeVersion": 1
    },
    {
      "id": "f070efb7-dfe5-458c-a6cf-aa0e17205d5b",
      "name": "Sticky Note3",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        912,
        -304
      ],
      "parameters": {
        "color": 6,
        "width": 352,
        "height": 128,
        "content": "## Flow logic\nThe flow loops through all pages of your YouTube uploads playlist, extracts video details, and appends them to Google Sheets."
      },
      "typeVersion": 1
    },
    {
      "id": "c38602a6-fa4a-42ed-a9f0-3c93e382439c",
      "name": "Sticky Note4",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        2944,
        -256
      ],
      "parameters": {
        "color": 2,
        "width": 288,
        "height": 128,
        "content": "## Captions\nCaptions (.srt) are fetched for each video if available. This can be disabled by disconnecting the last branch."
      },
      "typeVersion": 1
    }
  ],
  "active": false,
  "pinData": {},
  "settings": {
    "callerPolicy": "workflowsFromSameOwner",
    "executionOrder": "v1"
  },
  "versionId": "4dd56d2a-87bd-4723-808f-4916fbe09358",
  "connections": {
    "If": {
      "main": [
        [
          {
            "node": "Get row(s) in sheet",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Loop Vars",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "If1": {
      "main": [
        [
          {
            "node": "Get captions text",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "If2": {
      "main": [
        [
          {
            "node": "Get Video Details",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Loop Vars": {
      "main": [
        [
          {
            "node": "List Uploads",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Split Out": {
      "main": [
        [
          {
            "node": "Update Posts",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Variables": {
      "main": [
        [
          {
            "node": "Loop Vars",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Split Out1": {
      "main": [
        [
          {
            "node": "Update Posts1",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Collect ids": {
      "main": [
        [
          {
            "node": "If",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "List Uploads": {
      "main": [
        [
          {
            "node": "Split Out",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Update Posts": {
      "main": [
        [
          {
            "node": "Collect ids",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Update Posts1": {
      "main": [
        [
          {
            "node": "Get captions ID",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Get My Channel": {
      "main": [
        [
          {
            "node": "Variables",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Get captions ID": {
      "main": [
        [
          {
            "node": "If1",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Get Video Details": {
      "main": [
        [
          {
            "node": "Split Out1",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Get captions text": {
      "main": [
        [
          {
            "node": "Update Posts2",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Get row(s) in sheet": {
      "main": [
        [
          {
            "node": "If2",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "When clicking ‘Execute workflow’": {
      "main": [
        [
          {
            "node": "Get My Channel",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}

相关工作流