AutomationFlowsSocial Media › Convert Youtube Videos to Mp3 with Rapidapi, Google Drive Storage & Sheets…

Convert Youtube Videos to Mp3 with Rapidapi, Google Drive Storage & Sheets…

Original n8n title: Convert Youtube Videos to Mp3 with Rapidapi, Google Drive Storage & Sheets Logging

ByEvoort Solutions @evoortsolutions on n8n.io

This automated workflow allows seamless conversion of YouTube videos to MP3, using the YouTube to MP3 Downloader API. The converted MP3 files are uploaded to Google Drive, and all relevant conversion data like download links and file sizes are logged in Google Sheets. Ideal for…

Event trigger★★★★☆ complexity19 nodesForm TriggerHTTP RequestGoogle DriveGoogle Sheets
Social Media Trigger: Event Nodes: 19 Complexity: ★★★★☆ Added:

This workflow corresponds to n8n.io template #6722 — we link there as the canonical source.

This workflow follows the Form Trigger → Google Drive recipe pattern — see all workflows that pair these two integrations.

The workflow JSON

Copy or download the full n8n JSON below. Paste it into a new n8n workflow, add your credentials, activate. Full import guide →

Download .json
{
  "meta": {
    "templateCredsSetupCompleted": true
  },
  "nodes": [
    {
      "id": "85bb7486-da1a-4dcd-979d-819d435ab2e0",
      "name": "On form submission",
      "type": "n8n-nodes-base.formTrigger",
      "position": [
        -500,
        -20
      ],
      "parameters": {
        "options": {},
        "formTitle": "Youtube to MP3",
        "formFields": {
          "values": [
            {
              "fieldLabel": "URL",
              "placeholder": "https://youtu.be/abcdefg",
              "requiredField": true
            }
          ]
        },
        "formDescription": "Youtube to MP3 Converter"
      },
      "typeVersion": 2.2
    },
    {
      "id": "90b93ccf-0eec-4a9e-82b8-c2974e590353",
      "name": "HTTP Request",
      "type": "n8n-nodes-base.httpRequest",
      "onError": "continueRegularOutput",
      "position": [
        -280,
        -20
      ],
      "parameters": {
        "url": "https://youtube-to-mp3-downloader1.p.rapidapi.com/output.php",
        "method": "POST",
        "options": {},
        "sendBody": true,
        "contentType": "multipart-form-data",
        "sendHeaders": true,
        "bodyParameters": {
          "parameters": [
            {
              "name": "url",
              "value": "={{ $json.URL }}"
            }
          ]
        },
        "headerParameters": {
          "parameters": [
            {
              "name": "x-rapidapi-host",
              "value": "youtube-to-mp3-downloader1.p.rapidapi.co"
            },
            {
              "name": "x-rapidapi-key",
              "value": "your key"
            }
          ]
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "035ea1e7-c4e6-446e-8e70-0944e1e62156",
      "name": "Google Drive",
      "type": "n8n-nodes-base.googleDrive",
      "position": [
        580,
        -340
      ],
      "parameters": {
        "driveId": {
          "__rl": true,
          "mode": "id",
          "value": "1MH4rVD9lziY-acugKQFoitbE6Gv5vdLl"
        },
        "options": {},
        "folderId": {
          "__rl": true,
          "mode": "list",
          "value": "1MH4rVD9lziY-acugKQFoitbE6Gv5vdLl",
          "cachedResultUrl": "",
          "cachedResultName": "youtube to mp3"
        }
      },
      "credentials": {
        "googleDriveOAuth2Api": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 3
    },
    {
      "id": "9c713a2f-c2c5-43a7-aeec-409682233334",
      "name": "Google Sheets",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        1200,
        -140
      ],
      "parameters": {
        "columns": {
          "value": {
            "URL": "={{ $('On form submission').item.json.URL }}",
            "Size": "={{ $('Code').item.json.fileSizeInMb }} MB",
            "Status": "Success",
            "Created at": "={{ $now.format('dd-MM-yyyy') }}",
            "Download Link": "={{ $('Google Drive').item.json.webContentLink }}",
            "Web View Link": "={{ $('Google Drive').item.json.webViewLink }}"
          },
          "schema": [
            {
              "id": "URL",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "URL",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Status",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "Status",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Download Link",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "Download Link",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Web View Link",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "Web View Link",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Size",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "Size",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Created at",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "Created at",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            }
          ],
          "mappingMode": "defineBelow",
          "matchingColumns": [
            "URL"
          ],
          "attemptToConvertTypes": false,
          "convertFieldsToString": false
        },
        "options": {},
        "operation": "appendOrUpdate",
        "sheetName": {
          "__rl": true,
          "mode": "list",
          "value": "gid=0",
          "cachedResultUrl": "",
          "cachedResultName": "Sheet1"
        },
        "documentId": {
          "__rl": true,
          "mode": "id",
          "value": "1S1KYpKzOEGw8eesZtAY03Uf8WXRKKWXkmUvXsNdsy0U"
        },
        "authentication": "serviceAccount"
      },
      "credentials": {
        "googleApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 4.6
    },
    {
      "id": "8aebafbf-69d8-476a-97f4-62d0122fa818",
      "name": "Google Sheets1",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        720,
        220
      ],
      "parameters": {
        "columns": {
          "value": {
            "URL": "={{ $('On form submission').item.json.URL }}",
            "Size": "=N/A",
            "Status": "={{ $json.status }}",
            "Created at": "={{ $now.format('dd-MM-yyyy') }}",
            "Download Link": "N/A",
            "Web View Link": "=N/A"
          },
          "schema": [
            {
              "id": "URL",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "URL",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Status",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "Status",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Download Link",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "Download Link",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Web View Link",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "Web View Link",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Size",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "Size",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Created at",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "Created at",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            }
          ],
          "mappingMode": "defineBelow",
          "matchingColumns": [
            "URL"
          ],
          "attemptToConvertTypes": false,
          "convertFieldsToString": false
        },
        "options": {},
        "operation": "appendOrUpdate",
        "sheetName": {
          "__rl": true,
          "mode": "list",
          "value": "gid=0",
          "cachedResultUrl": "",
          "cachedResultName": "Sheet1"
        },
        "documentId": {
          "__rl": true,
          "mode": "id",
          "value": "1S1KYpKzOEGw8eesZtAY03Uf8WXRKKWXkmUvXsNdsy0U"
        },
        "authentication": "serviceAccount"
      },
      "credentials": {
        "googleApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 4.6
    },
    {
      "id": "076854cf-088b-4227-847e-be673d3e2cd5",
      "name": "If",
      "type": "n8n-nodes-base.if",
      "position": [
        0,
        -20
      ],
      "parameters": {
        "options": {},
        "conditions": {
          "options": {
            "version": 2,
            "leftValue": "",
            "caseSensitive": true,
            "typeValidation": "strict"
          },
          "combinator": "and",
          "conditions": [
            {
              "id": "e2308413-5c68-4e33-ae0a-c0c0b2d62669",
              "operator": {
                "name": "filter.operator.equals",
                "type": "string",
                "operation": "equals"
              },
              "leftValue": "={{ $json.status }}",
              "rightValue": "=done"
            },
            {
              "id": "bcc58e3d-9609-4ec3-adb9-bc6098205818",
              "operator": {
                "name": "filter.operator.equals",
                "type": "string",
                "operation": "equals"
              },
              "leftValue": "",
              "rightValue": ""
            }
          ]
        }
      },
      "typeVersion": 2.2
    },
    {
      "id": "ba810d66-e827-48a4-a72d-a94dd0c3e20b",
      "name": "Wait",
      "type": "n8n-nodes-base.wait",
      "position": [
        260,
        220
      ],
      "parameters": {},
      "typeVersion": 1.1
    },
    {
      "id": "9db89edc-1c9c-4678-9261-23397f2ad5b1",
      "name": "Code",
      "type": "n8n-nodes-base.code",
      "position": [
        880,
        -280
      ],
      "parameters": {
        "jsCode": "function kbToMb(kb) {\n    return (kb / 1024).toFixed(2); // Convert KB to MB\n}\n\nfunction bytesToKb(bytes) {\n    return bytes / 1024;  // Convert Bytes to KB\n}\n\n// Get the file size in bytes from the input (from the Google Drive node)\nlet fileSizeInBytes = $input.first().json.size;\n\n// Convert bytes to KB first\nlet fileSizeInKb = bytesToKb(fileSizeInBytes);\n\n// Then convert KB to MB\nlet fileSizeInMb = kbToMb(fileSizeInKb);\n\nlet outputData = {\n    fileName: $input.first().json.name,\n    fileSizeInMb: fileSizeInMb\n};\n\n// Return an array containing the output data\nreturn [{ json: outputData }];\n"
      },
      "typeVersion": 2
    },
    {
      "id": "a5fb5ed7-bd31-40d1-b4f7-8e7f4b0dd869",
      "name": "Download mp3",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        280,
        -340
      ],
      "parameters": {
        "url": "={{ $json.url }}",
        "options": {}
      },
      "typeVersion": 4.2
    },
    {
      "id": "8fb7d07e-37a2-4fd9-8a40-af03e14cdbb8",
      "name": "Sticky Note",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -1360,
        -420
      ],
      "parameters": {
        "width": 660,
        "height": 1160,
        "content": "# **Youtube to MP3 Converter**\n\n## Description:\nThis workflow is designed to convert YouTube videos to MP3 files and store relevant data such as download links and file size in a Google Sheet. It starts when a form is submitted with a YouTube URL, then makes an HTTP request to process the conversion, uploads the converted file to Google Drive, and logs the data in Google Sheets.\n\n---\n\n## Node-by-Node Explanation:\n\n1. **On form submission**  \n   Triggered when the user submits a form with a YouTube video URL, required for processing.\n\n2. **HTTP Request**  \n   Sends a POST request to a server (`https://api.archgroupmn.com/yt/output.php`) with the YouTube URL to process the video for conversion.\n\n3. **Google Drive**  \n   Uploads the converted MP3 file to Google Drive.\n\n4. **Google Sheets**  \n   Logs the successful conversion details (URL, download link, size, etc.) in a Google Sheet.\n\n5. **Google Sheets1**  \n   Logs the initial status and URL information in the same Google Sheet before the download link is available.\n\n6. **If**  \n   Filters the workflow to continue only if the status of the conversion is \"done.\"\n\n7. **Wait**  \n   Pauses the process until the conversion is done, and then moves to the next step.\n\n8. **Code**  \n   Converts the file size from bytes to megabytes (MB) to be included in the data logged in Google Sheets.\n\n9. **Download mp3**  \n   Initiates the download of the MP3 file once it is processed and ready.\n"
      },
      "typeVersion": 1
    },
    {
      "id": "b9831f59-f02a-4f44-82c5-0237146c6180",
      "name": "Sticky Note1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -600,
        -180
      ],
      "parameters": {
        "height": 320,
        "content": " **On form submission**  \n   - Triggered when the user submits a form with a YouTube video URL, required for processing."
      },
      "typeVersion": 1
    },
    {
      "id": "76930924-5f65-4219-9170-e927e3dd0e15",
      "name": "Sticky Note2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -340,
        -480
      ],
      "parameters": {
        "height": 620,
        "content": "**HTTP Request**  \n   - Sends a POST request to the API endpoint `https://youtube-to-mp3-downloader1.p.rapidapi.com/output.php` to convert the provided YouTube video URL to MP3.\n   - It includes necessary headers (`x-rapidapi-host` and `x-rapidapi-key`) to authenticate the request.\n   - The URL is passed as a parameter (`url`) in the body of the request in `multipart-form-data` format.\n   - The response from this API call will contain the result of the conversion, though the flow currently doesn't connect this result to any further steps."
      },
      "typeVersion": 1
    },
    {
      "id": "64ac5edf-deec-4228-8c57-0fd93b3416e2",
      "name": "Sticky Note3",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -60,
        -180
      ],
      "parameters": {
        "height": 320,
        "content": " **If**  \n   - Filters the workflow to continue only if the status of the conversion is \"done.\""
      },
      "typeVersion": 1
    },
    {
      "id": "92097d91-1648-4e93-a7cf-2d7b6329d8f7",
      "name": "Sticky Note4",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        220,
        -460
      ],
      "parameters": {
        "height": 300,
        "content": " **Download mp3**  \n   - Initiates the download of the MP3 file once it is processed and ready."
      },
      "typeVersion": 1
    },
    {
      "id": "66c2544b-672e-4823-b33d-b9605cfd1306",
      "name": "Sticky Note5",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        520,
        -440
      ],
      "parameters": {
        "height": 260,
        "content": " **Google Drive**  \n   - Uploads the converted MP3 file to Google Drive."
      },
      "typeVersion": 1
    },
    {
      "id": "4ac295fe-8b12-4e7e-bbfc-9644397bf7c4",
      "name": "Sticky Note6",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        840,
        -420
      ],
      "parameters": {
        "height": 260,
        "content": " **Code**  \n   - Converts the file size from bytes to megabytes (MB) to be included in the data logged in Google Sheets.\n"
      },
      "typeVersion": 1
    },
    {
      "id": "8da832b5-3c4b-4687-84f0-15a6a960da9a",
      "name": "Sticky Note7",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1140,
        -260
      ],
      "parameters": {
        "height": 260,
        "content": "**Google Sheets**  \n   - Logs the successful conversion details (URL, download link, size, etc.) in a Google Sheet.\n"
      },
      "typeVersion": 1
    },
    {
      "id": "8517413c-868a-490c-b31d-8a002dc821df",
      "name": "Sticky Note8",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        680,
        60
      ],
      "parameters": {
        "height": 280,
        "content": "**Google Sheets1**  \n   - Logs the initial status and URL information in the same Google Sheet before the download link is available.\n"
      },
      "typeVersion": 1
    },
    {
      "id": "190cb65d-fbe1-4019-a0a1-60c6afa8b132",
      "name": "Sticky Note9",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        200,
        120
      ],
      "parameters": {
        "height": 240,
        "content": " **Wait**  \n   - Pauses the process until the conversion is done, and then moves to the next step."
      },
      "typeVersion": 1
    }
  ],
  "connections": {
    "If": {
      "main": [
        [
          {
            "node": "Download mp3",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Wait",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Code": {
      "main": [
        [
          {
            "node": "Google Sheets",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Wait": {
      "main": [
        [
          {
            "node": "Google Sheets1",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Download mp3": {
      "main": [
        [
          {
            "node": "Google Drive",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Google Drive": {
      "main": [
        [
          {
            "node": "Code",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "HTTP Request": {
      "main": [
        [
          {
            "node": "If",
            "type": "main",
            "index": 0
          }
        ],
        []
      ]
    },
    "On form submission": {
      "main": [
        [
          {
            "node": "HTTP Request",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}

Credentials you'll need

Each integration node will prompt for credentials when you import. We strip credential IDs before publishing — you'll add your own.

Pro

For the full experience including quality scoring and batch install features for each workflow upgrade to Pro

About this workflow

This automated workflow allows seamless conversion of YouTube videos to MP3, using the YouTube to MP3 Downloader API. The converted MP3 files are uploaded to Google Drive, and all relevant conversion data like download links and file sizes are logged in Google Sheets. Ideal for…

Source: https://n8n.io/workflows/6722/ — original creator credit. Request a take-down →

More Social Media workflows → · Browse all categories →

Related workflows

Workflows that share integrations, category, or trigger type with this one. All free to copy and import.

Social Media

Convert TikTok videos to MP4 , MP3 (without watermark), upload to Google Drive, and log conversion attempts into Google Sheets automatically — powered by TikTok Download Audio Video API.

Form Trigger, Google Sheets, Google Drive +1
Social Media

Easily convert Facebook videos into downloadable MP4 files using Facebook Video Downloader API. This n8n workflow automates fetching videos, downloading them, uploading them to Google Drive, and loggi

Form Trigger, Google Sheets, Google Drive +1
Social Media

This n8n workflow enables users to convert Instagram video links into downloadable MP4 files, store them in Google Drive, and log the results (success or failure) in Google Sheets. On form submission

Form Trigger, Google Sheets, Google Drive +1
Social Media

This n8n workflow automates the process of uploading video and image advertisements to Meta Ads Manager via the Meta Graph API (Facebook Ads) directly from Google Sheets and Google Drive. The workflow

Facebook Graph Api, Google Sheets, HTTP Request +2
Social Media

Marketing teams, agencies, and businesses who regularly create tens or hundreds of Facebook ads and store their creative assets in Google Drive.

Facebook Graph Api, Error Trigger, Stop And Error +4