Convierte videos de YouTube a MP3 usando RapidAPI, Google Drive para el almacenamiento y Sheets para el registro

Avanzado

Este es unFile Managementflujo de automatización del dominio deautomatización que contiene 19 nodos.Utiliza principalmente nodos como If, Code, Wait, FormTrigger, GoogleDrive. Usa RapidAPI, Google Drive para el almacenamiento y Sheets para el registro de logs para convertir videos de YouTube a MP3

Requisitos previos
  • Credenciales de API de Google Drive
  • Pueden requerirse credenciales de autenticación para la API de destino
  • Credenciales de API de Google Sheets
Vista previa del flujo de trabajo
Visualización de las conexiones entre nodos, con soporte para zoom y panorámica
Exportar flujo de trabajo
Copie la siguiente configuración JSON en n8n para importar y usar este flujo de trabajo
{
  "meta": {
    "instanceId": "60c025075753afcab9f803964b4caaca9402f435deb4efafbb8e3b93b54d8752",
    "templateCredsSetupCompleted": true
  },
  "nodes": [
    {
      "id": "85bb7486-da1a-4dcd-979d-819d435ab2e0",
      "name": "Al enviar formulario",
      "type": "n8n-nodes-base.formTrigger",
      "position": [
        -500,
        -20
      ],
      "webhookId": "5fac25c4-863c-4b9f-a1ed-bbccce99a8fd",
      "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": "Solicitud HTTP",
      "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": {
          "id": "qEkQ8MFn0uSHgAqY",
          "name": "Google Drive account"
        }
      },
      "typeVersion": 3
    },
    {
      "id": "9c713a2f-c2c5-43a7-aeec-409682233334",
      "name": "Hojas de Google",
      "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": {
          "id": "qUtlCnYpk7bXXaYp",
          "name": "Google Sheets account 3"
        }
      },
      "typeVersion": 4.6
    },
    {
      "id": "8aebafbf-69d8-476a-97f4-62d0122fa818",
      "name": "Hojas de Google1",
      "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": {
          "id": "qUtlCnYpk7bXXaYp",
          "name": "Google Sheets account 3"
        }
      },
      "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": "Esperar",
      "type": "n8n-nodes-base.wait",
      "position": [
        260,
        220
      ],
      "webhookId": "fabd97e2-2cec-4bca-a2cf-cf6c6b0720d5",
      "parameters": {},
      "typeVersion": 1.1
    },
    {
      "id": "9db89edc-1c9c-4678-9261-23397f2ad5b1",
      "name": "Código",
      "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": "Descargar mp3",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        280,
        -340
      ],
      "parameters": {
        "url": "={{ $json.url }}",
        "options": {}
      },
      "typeVersion": 4.2
    },
    {
      "id": "8fb7d07e-37a2-4fd9-8a40-af03e14cdbb8",
      "name": "Nota adhesiva",
      "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": "Nota adhesiva1",
      "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": "Nota adhesiva2",
      "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": "Nota adhesiva3",
      "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": "Nota adhesiva4",
      "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": "Nota adhesiva5",
      "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": "Nota adhesiva6",
      "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": "Nota adhesiva7",
      "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": "Nota adhesiva8",
      "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": "Nota adhesiva9",
      "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
    }
  ],
  "pinData": {},
  "connections": {
    "076854cf-088b-4227-847e-be673d3e2cd5": {
      "main": [
        [
          {
            "node": "a5fb5ed7-bd31-40d1-b4f7-8e7f4b0dd869",
            "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
          }
        ]
      ]
    },
    "a5fb5ed7-bd31-40d1-b4f7-8e7f4b0dd869": {
      "main": [
        [
          {
            "node": "035ea1e7-c4e6-446e-8e70-0944e1e62156",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "035ea1e7-c4e6-446e-8e70-0944e1e62156": {
      "main": [
        [
          {
            "node": "Code",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "90b93ccf-0eec-4a9e-82b8-c2974e590353": {
      "main": [
        [
          {
            "node": "076854cf-088b-4227-847e-be673d3e2cd5",
            "type": "main",
            "index": 0
          }
        ],
        []
      ]
    },
    "85bb7486-da1a-4dcd-979d-819d435ab2e0": {
      "main": [
        [
          {
            "node": "90b93ccf-0eec-4a9e-82b8-c2974e590353",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}
Preguntas frecuentes

¿Cómo usar este flujo de trabajo?

Copie el código de configuración JSON de arriba, cree un nuevo flujo de trabajo en su instancia de n8n y seleccione "Importar desde JSON", pegue la configuración y luego modifique la configuración de credenciales según sea necesario.

¿En qué escenarios es adecuado este flujo de trabajo?

Avanzado - Gestión de archivos

¿Es de pago?

Este flujo de trabajo es completamente gratuito, puede importarlo y usarlo directamente. Sin embargo, tenga en cuenta que los servicios de terceros utilizados en el flujo de trabajo (como la API de OpenAI) pueden requerir un pago por su cuenta.

Flujos de trabajo relacionados recomendados

Descargar música de Spotify a Google Drive y registrar automáticamente en una hoja de cálculo
Descargar música de Spotify a Google Drive y registrar automáticamente el historial de descargas en una hoja de cálculo
If
Code
Wait
+
If
Code
Wait
25 NodosEvoort Solutions
Gestión de archivos
Descargar videos de TikTok sin marca de agua a Google Drive y registrar automáticamente en una hoja de cálculo
Descargar videos de TikTok sin marca de agua a Google Drive y registrar automáticamente el historial en una hoja de cálculo
If
Wait
Form Trigger
+
If
Wait
Form Trigger
19 NodosEvoort Solutions
Creación de contenido
Descarga de videos de Instagram a Google Drive a través de un formulario y registro en una hoja de cálculo
Descarga de videos de Instagram a Google Drive, activada por formulario, y registro en una hoja de cálculo
If
Wait
Form Trigger
+
If
Wait
Form Trigger
19 NodosEvoort Solutions
Varios
Usar Image to Image GPT, Google Sheets y Drive para generar y subir imágenes
Usar Image-to-Image GPT, Google Sheets y Drive para generar y subir imágenes
If
Code
Wait
+
If
Code
Wait
23 NodosEvoort Solutions
Creación de contenido
Transcripción de texto de TikTok
Automatizar la transcripción de videos de TikTok con RapidAPI y Google Sheets
If
Code
Wait
+
If
Code
Wait
21 NodosEvoort Solutions
Creación de contenido
Descargar videos de Facebook a Google Drive y registrar automáticamente en una hoja de cálculo
Descargar videos de Facebook a Google Drive y registrar automáticamente el historial de descargas en una hoja de cálculo
If
Wait
Form Trigger
+
If
Wait
Form Trigger
19 NodosSk developer
Gestión de archivos
Información del flujo de trabajo
Nivel de dificultad
Avanzado
Número de nodos19
Categoría1
Tipos de nodos8
Descripción de la dificultad

Adecuado para usuarios avanzados, flujos de trabajo complejos con 16+ nodos

Enlaces externos
Ver en n8n.io

Compartir este flujo de trabajo

Categorías

Categorías: 34