{
  "name": "Convert Spotify tracks to MP3 and share via Google Drive forms",
  "nodes": [
    {
      "id": "c2aaf114-004f-4890-8628-842884f24d01",
      "name": "On form submission",
      "type": "n8n-nodes-base.formTrigger",
      "position": [
        0,
        0
      ]
    },
    {
      "id": "9980b312-847b-4802-ae16-f40da67dd287",
      "name": "Wait",
      "type": "n8n-nodes-base.wait",
      "position": [
        600,
        -140
      ]
    },
    {
      "id": "f611935e-4893-4cb7-bda3-8cd9b21d9ffa",
      "name": "Spotify Rapid Api",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        260,
        0
      ]
    },
    {
      "id": "3cafc718-1352-4cc3-b0ee-af607fe88602",
      "name": "Downloader",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        1020,
        -80
      ]
    },
    {
      "id": "a9fa6952-377a-49c5-b09f-cb0e35fced78",
      "name": "Upload Mp3 To Google Drive",
      "type": "n8n-nodes-base.googleDrive",
      "position": [
        1540,
        -300
      ]
    },
    {
      "id": "3994a8b4-d6c7-41b0-a2ed-60f50e08f947",
      "name": "Update Permission",
      "type": "n8n-nodes-base.googleDrive",
      "position": [
        2000,
        -280
      ]
    },
    {
      "id": "143ddac5-033b-4438-8590-310dc47916ee",
      "name": "Sticky Note",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -1200,
        -480
      ],
      "parameters": {
        "width": 880,
        "height": 1340,
        "content": "# 🎵 Spotify to MP3 → Google Drive\nThis n8n workflow automates the process of converting a Spotify track URL to an MP3 file, downloading it, uploading it to Google Drive, and making it publicly shareab"
      }
    },
    {
      "id": "8f98a48f-8a93-49ae-a2ac-f9d47e19c6f4",
      "name": "Sticky Note1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -120,
        -180
      ],
      "parameters": {
        "width": 300,
        "height": 320,
        "content": "## 1. On form submission (`formTrigger`)\n- Purpose: Collects the Spotify URL from a user through a form.\n- Details: A simple web form is presented with one field labeled `url`."
      }
    },
    {
      "id": "bf986036-50b2-44f2-90f6-6447309b85e7",
      "name": "Sticky Note2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        200,
        -360
      ],
      "parameters": {
        "width": 280,
        "height": 500,
        "content": "## 2. Spotify Rapid Api (`httpRequest`)\n- Purpose: Sends the Spotify URL to a RapidAPI endpoint to generate a downloadable MP3.\n- Method: POST\n- Headers:\n  - `x-rapidapi-host`: spotify-downloader-mp3."
      }
    },
    {
      "id": "27b15fcc-0534-461f-94bc-d94d40432b1f",
      "name": "Sticky Note3",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        520,
        -340
      ],
      "parameters": {
        "width": 280,
        "height": 320,
        "content": "## 3. Wait (`wait`)\n- Purpose: Adds a delay before attempting to download the MP3.\n- Why: Ensures that the API has had enough time to process and generate the file.\n- Note: You can configure wait dura"
      }
    },
    {
      "id": "1304d8d5-5316-4705-86a4-accd546cd31f",
      "name": "Sticky Note4",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        920,
        -300
      ],
      "parameters": {
        "width": 320,
        "height": 340,
        "content": "## 4. Downloader (`httpRequest`)\n- Purpose: Downloads the MP3 file using the `download_url` returned from the previous node.\n- Method: GET\n- URL: Dynamically populated from `={{ $json.download_url }}`"
      }
    },
    {
      "id": "c8837817-b03f-4235-a6fa-3742a3e80f41",
      "name": "Sticky Note5",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1420,
        -520
      ],
      "parameters": {
        "width": 360,
        "height": 400,
        "content": "## 5. Upload Mp3 To Google Drive (`googleDrive`)\n- Purpose: Uploads the downloaded MP3 file to a specific Google Drive folder.\n- Authentication: Uses a service account.\n- Folder: Uploads to root or sp"
      }
    },
    {
      "id": "3f989fbd-1929-4b37-9f85-5bd4c443720a",
      "name": "Sticky Note6",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1900,
        -540
      ],
      "parameters": {
        "width": 320,
        "height": 440,
        "content": "## 6. Update Permission (`googleDrive`)\n- Purpose: Makes the uploaded file publicly accessible.\n- Role: `writer` (you can change this to `reader` for safety).\n- Type: `anyone` (no login required to ac"
      }
    }
  ],
  "connections": {
    "Wait": {
      "main": [
        [
          {
            "node": "Downloader",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Downloader": {
      "main": [
        [
          {
            "node": "Upload Mp3 To Google Drive",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Spotify Rapid Api": {
      "main": [
        [
          {
            "node": "Wait",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "On form submission": {
      "main": [
        [
          {
            "node": "Spotify Rapid Api",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Upload Mp3 To Google Drive": {
      "main": [
        [
          {
            "node": "Update Permission",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}