Workflow n8n

Automatisation Spotify avec n8n : gestion de playlists mensuelles

Ce workflow n8n a pour objectif d'automatiser la gestion des playlists sur Spotify en fonction des morceaux aimés par l'utilisateur. Dans un contexte où la musique joue un rôle central dans la vie quotidienne, ce workflow permet de créer et de mettre à jour automatiquement une playlist mensuelle avec les dernières chansons aimées. Il s'adresse à toute entreprise ou individu souhaitant optimiser leur expérience musicale sans effort manuel.

  • Étape 1 : le déclencheur est programmé pour s'exécuter selon un calendrier défini, récupérant la date actuelle.
  • Étape 2 : le workflow interroge les 10 derniers morceaux aimés via l'API de Spotify.
  • Étape 3 : chaque morceau est vérifié pour s'assurer qu'il n'est pas déjà enregistré dans une base de données NoCoDB.
  • Étape 4 : si le morceau n'est pas enregistré, il est ajouté à la base de données et à la playlist Spotify.
  • Étape 5 : le workflow vérifie si une playlist mensuelle existe déjà dans Spotify et dans la base de données. Si elle n'existe pas, une nouvelle playlist est créée.
  • Étape 6 : les morceaux sont ajoutés à la playlist mensuelle, garantissant que l'utilisateur dispose toujours d'une sélection à jour. Les bénéfices de cette automatisation n8n incluent un gain de temps considérable et une expérience utilisateur améliorée, permettant aux utilisateurs de se concentrer sur l'écoute plutôt que sur la gestion manuelle de leurs playlists.
Tags clés :automatisationSpotifyn8ngestion de playlistsmusique
Catégorie: Scheduled · Tags: automatisation, Spotify, n8n, gestion de playlists, musique0

Workflow n8n Spotify, gestion de playlists, musique : vue d'ensemble

Schéma des nœuds et connexions de ce workflow n8n, généré à partir du JSON n8n.

Workflow n8n Spotify, gestion de playlists, musique : détail des nœuds

  • Get current date

    Ce noeud récupère la date actuelle.

  • Sticky Note3

    Ce noeud affiche une note autocollante avec un contenu spécifique.

  • Get last 10 liked tracks

    Ce noeud récupère les 10 dernières pistes aimées sur Spotify.

  • Check if track is saved

    Ce noeud vérifie si une piste est sauvegardée dans la base de données.

  • Is not saved

    Ce noeud évalue si la piste n'est pas sauvegardée.

  • Create song entry

    Ce noeud crée une entrée de chanson dans la base de données.

  • Get all user playlist

    Ce noeud récupère toutes les playlists de l'utilisateur sur Spotify.

  • Sticky Note4

    Ce noeud affiche une note autocollante avec un contenu spécifique.

  • Get monthly playlist

    Ce noeud filtre les playlists mensuelles selon des conditions définies.

  • Get playlist in DB

    Ce noeud récupère une playlist depuis la base de données.

  • Monthly playlist exist in Spotify ?

    Ce noeud vérifie si la playlist mensuelle existe sur Spotify.

  • Playlist exist in DB ?

    Ce noeud vérifie si la playlist existe dans la base de données.

  • Create playlist in Spotify

    Ce noeud crée une playlist sur Spotify.

  • Create playlist in DB1

    Ce noeud crée une playlist dans la base de données.

  • Create playlist in DB

    Ce noeud crée une playlist dans la base de données.

  • Merge

    Ce noeud fusionne les données provenant de plusieurs sources.

  • Clean op

    Ce noeud ne réalise aucune opération, servant de point de passage.

  • Clean op2

    Ce noeud ne réalise aucune opération, servant de point de passage.

  • Get this month playlist in DB

    Ce noeud récupère la playlist de ce mois dans la base de données.

  • Get this month tracks in DB

    Ce noeud récupère les pistes de ce mois dans la base de données.

  • Add song to the playlist

    Ce noeud ajoute une chanson à la playlist sur Spotify.

  • For each tracks in liked song

    Ce noeud traite chaque piste dans les chansons aimées par lots.

  • For each monthly tracks in DB

    Ce noeud traite chaque piste mensuelle dans la base de données par lots.

  • Get this month tracks in Spotify

    Ce noeud récupère les pistes de ce mois sur Spotify.

  • Filter1

    Ce noeud filtre les données selon des conditions définies.

  • Song is not present in the playlist ?

    Ce noeud vérifie si la chanson n'est pas présente dans la playlist.

  • Clean op1

    Ce noeud ne réalise aucune opération, servant de point de passage.

  • Sticky Note5

    Ce noeud affiche une note autocollante avec un contenu spécifique.

  • Schedule Trigger

    Ce noeud déclenche le workflow selon un calendrier défini.

  • End

    Ce noeud ne réalise aucune opération, servant de point de passage.

Inscris-toi pour voir l'intégralité du workflow

Inscription gratuite

S'inscrire gratuitementBesoin d'aide ?
{
  "meta": {
    "instanceId": "0c99324b4b0921a9febd4737c606882881f3ca11d9b1d7e22b0dad4784eb24c7"
  },
  "nodes": [
    {
      "id": "f418ae01-01ea-4794-8903-d5709a29c735",
      "name": "Get current date",
      "type": "n8n-nodes-base.code",
      "position": [
        240,
        2460
      ],
      "parameters": {
        "jsCode": "const monthNames = [\n  'January',\n  'February',\n  'March',\n  'April',\n  'May',\n  'June',\n  'July',\n  'August',\n  'September',\n  'October',\n  'November',\n  'December',\n]\n\nconst date = new Date()\nconst year = date.getFullYear()\nconst month = date.getMonth()\n\nlet currentDate = {\n  month: month,\n  year: year,\n  text: `${monthNames[month]} '${year.toString().slice(-2)}`\n}\n\nitems[0].json.currentDate = currentDate\n\nreturn items\n\n// Month > Number e.g. July = 6, December = 11\n// Year > Text\n// Text > Playlist name\n\n// let currentDate = {\n//   month: 8, \n//   year: '2024',\n//   text: `September '23`\n// }\n\n// items[0].json.currentDate = currentDate\n\n// return items\n\n"
      },
      "typeVersion": 1
    },
    {
      "id": "855e493a-a232-45ef-8fdd-4a8225065c95",
      "name": "Sticky Note3",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        460,
        2580
      ],
      "parameters": {
        "width": 1290.936043660723,
        "height": 407.6508589002549,
        "content": "## Check if the song is present in the database"
      },
      "typeVersion": 1
    },
    {
      "id": "672ef06c-b812-41c8-8501-cde8b61a4aef",
      "name": "Get last 10 liked tracks",
      "type": "n8n-nodes-base.spotify",
      "position": [
        500,
        2680
      ],
      "parameters": {
        "limit": 10,
        "resource": "library"
      },
      "credentials": {
        "spotifyOAuth2Api": {
          "id": "zQrMRwwU6DLh4W77",
          "name": "Spotify account"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "da13c571-6af4-49bf-b8ff-2d54245f6d3e",
      "name": "Check if track is saved",
      "type": "n8n-nodes-base.nocoDb",
      "position": [
        940,
        2780
      ],
      "parameters": {
        "table": "m0dm2y304t7vmuk",
        "options": {
          "where": "=(uri,eq,{{ $json.track.uri }})",
          "fields": [
            "uri"
          ]
        },
        "operation": "getAll",
        "projectId": "pepq760y5lwt5tm",
        "returnAll": true,
        "authentication": "nocoDbApiToken"
      },
      "credentials": {
        "nocoDbApiToken": {
          "id": "9uSbSrDz8EL2OIL7",
          "name": "NocoDB Token account"
        }
      },
      "typeVersion": 3,
      "alwaysOutputData": true
    },
    {
      "id": "9144cda9-f18f-46d9-be2d-9fca4b192dbb",
      "name": "Is not saved",
      "type": "n8n-nodes-base.if",
      "position": [
        1160,
        2780
      ],
      "parameters": {
        "options": {},
        "conditions": {
          "options": {
            "leftValue": "",
            "caseSensitive": true,
            "typeValidation": "strict"
          },
          "combinator": "and",
          "conditions": [
            {
              "id": "dbb259d9-e2ec-4a7b-b375-601346dc2571",
              "operator": {
                "type": "object",
                "operation": "empty",
                "singleValue": true
              },
              "leftValue": "={{ $json }}",
              "rightValue": ""
            }
          ]
        }
      },
      "typeVersion": 2
    },
    {
      "id": "66b430e2-f46c-43b2-84e7-35c85d2b4403",
      "name": "Create song entry",
      "type": "n8n-nodes-base.nocoDb",
      "position": [
        1380,
        2700
      ],
      "parameters": {
        "table": "m0dm2y304t7vmuk",
        "fieldsUi": {
          "fieldValues": [
            {
              "fieldName": "uri",
              "fieldValue": "={{ $('For each tracks in liked song').item.json.track.uri }}"
            },
            {
              "fieldName": "added_at",
              "fieldValue": "={{ $('For each tracks in liked song').item.json.added_at }}"
            },
            {
              "fieldName": "playlistName",
              "fieldValue": "={{ $('Get current date').item.json.currentDate.text }}"
            }
          ]
        },
        "operation": "create",
        "projectId": "pepq760y5lwt5tm",
        "authentication": "nocoDbApiToken"
      },
      "credentials": {
        "nocoDbApiToken": {
          "id": "9uSbSrDz8EL2OIL7",
          "name": "NocoDB Token account"
        }
      },
      "typeVersion": 3
    },
    {
      "id": "9bd883ea-2e87-45aa-b8a0-b361ba7c5d9f",
      "name": "Get all user playlist",
      "type": "n8n-nodes-base.spotify",
      "position": [
        500,
        2220
      ],
      "parameters": {
        "resource": "playlist",
        "operation": "getUserPlaylists",
        "returnAll": true
      },
      "credentials": {
        "spotifyOAuth2Api": {
          "id": "zQrMRwwU6DLh4W77",
          "name": "Spotify account"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "3a0dad98-4571-4fb7-b366-0060d35b65fe",
      "name": "Sticky Note4",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        460,
        2080
      ],
      "parameters": {
        "width": 1481.5336029736159,
        "height": 416.7665808180022,
        "content": "## Check if the playlist present in the database"
      },
      "typeVersion": 1
    },
    {
      "id": "e793b97c-cc29-47b0-8aa7-015fa631bc37",
      "name": "Get monthly playlist",
      "type": "n8n-nodes-base.filter",
      "position": [
        720,
        2220
      ],
      "parameters": {
        "options": {},
        "conditions": {
          "options": {
            "leftValue": "",
            "caseSensitive": true,
            "typeValidation": "strict"
          },
          "combinator": "and",
          "conditions": [
            {
              "id": "56173299-d774-4cb4-b26f-4dca294dda1d",
              "operator": {
                "name": "filter.operator.equals",
                "type": "string",
                "operation": "equals"
              },
              "leftValue": "={{ $json.name }}",
              "rightValue": "={{ $('Get current date').item.json.currentDate.text }}"
            }
          ]
        }
      },
      "typeVersion": 2,
      "alwaysOutputData": true
    },
    {
      "id": "502ea9e2-7f03-4a8a-860e-90d63e42ee33",
      "name": "Get playlist in DB",
      "type": "n8n-nodes-base.nocoDb",
      "position": [
        1160,
        2120
      ],
      "parameters": {
        "table": "mchan0xys9h7h7e",
        "options": {
          "where": "=(name,eq,{{ $('Get current date').item.json.currentDate.text }})"
        },
        "operation": "getAll",
        "projectId": "pepq760y5lwt5tm",
        "returnAll": true,
        "authentication": "nocoDbApiToken"
      },
      "credentials": {
        "nocoDbApiToken": {
          "id": "9uSbSrDz8EL2OIL7",
          "name": "NocoDB Token account"
        }
      },
      "typeVersion": 3,
      "alwaysOutputData": true
    },
    {
      "id": "3d2bece0-8096-4ee1-a3b9-ae91b83f0957",
      "name": "Monthly playlist exist in Spotify ?",
      "type": "n8n-nodes-base.if",
      "position": [
        940,
        2220
      ],
      "parameters": {
        "options": {},
        "conditions": {
          "options": {
            "leftValue": "",
            "caseSensitive": true,
            "typeValidation": "strict"
          },
          "combinator": "and",
          "conditions": [
            {
              "id": "a2d9e3e0-a906-4ed9-9e23-166f781c86b1",
              "operator": {
                "type": "object",
                "operation": "notEmpty",
                "singleValue": true
              },
              "leftValue": "={{ $json }}",
              "rightValue": ""
            }
          ]
        }
      },
      "typeVersion": 2
    },
    {
      "id": "d983b940-2f8d-4823-aaaf-d1bfa4428b41",
      "name": "Playlist exist  in DB ?",
      "type": "n8n-nodes-base.if",
      "position": [
        1380,
        2120
      ],
      "parameters": {
        "options": {},
        "conditions": {
          "options": {
            "leftValue": "",
            "caseSensitive": true,
            "typeValidation": "strict"
          },
          "combinator": "and",
          "conditions": [
            {
              "id": "9485c9d4-ecdc-4d0e-a576-c7db5787c069",
              "operator": {
                "type": "object",
                "operation": "notEmpty",
                "singleValue": true
              },
              "leftValue": "={{ $json }}",
              "rightValue": ""
            }
          ]
        }
      },
      "typeVersion": 2
    },
    {
      "id": "c694ab19-bca7-4dd4-8d10-cf8a1adab341",
      "name": "Create playlist in Spotify",
      "type": "n8n-nodes-base.spotify",
      "position": [
        1160,
        2320
      ],
      "parameters": {
        "name": "={{ $('Get current date').item.json.currentDate.text }}",
        "resource": "playlist",
        "operation": "create",
        "additionalFields": {
          "description": "Monthly playlist"
        }
      },
      "credentials": {
        "spotifyOAuth2Api": {
          "id": "zQrMRwwU6DLh4W77",
          "name": "Spotify account"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "dc9dc3b5-cef7-412b-b3f8-5ec011c2746d",
      "name": "Create playlist in DB1",
      "type": "n8n-nodes-base.nocoDb",
      "position": [
        1380,
        2320
      ],
      "parameters": {
        "table": "mchan0xys9h7h7e",
        "fieldsUi": {
          "fieldValues": [
            {
              "fieldName": "uri",
              "fieldValue": "={{ $json.uri }}"
            },
            {
              "fieldName": "name",
              "fieldValue": "={{ $json.name }}"
            },
            {
              "fieldName": "description",
              "fieldValue": "={{ $json.description}}"
            }
          ]
        },
        "operation": "create",
        "projectId": "pepq760y5lwt5tm",
        "authentication": "nocoDbApiToken"
      },
      "credentials": {
        "nocoDbApiToken": {
          "id": "9uSbSrDz8EL2OIL7",
          "name": "NocoDB Token account"
        }
      },
      "typeVersion": 3
    },
    {
      "id": "0356c3a4-dc20-42b0-b069-045048768939",
      "name": "Create playlist in DB",
      "type": "n8n-nodes-base.nocoDb",
      "position": [
        1600,
        2200
      ],
      "parameters": {
        "table": "mchan0xys9h7h7e",
        "fieldsUi": {
          "fieldValues": [
            {
              "fieldName": "uri",
              "fieldValue": "={{ $('Get monthly playlist').item.json.uri }}"
            },
            {
              "fieldName": "name",
              "fieldValue": "={{ $('Get monthly playlist').item.json.name }}"
            },
            {
              "fieldName": "description",
              "fieldValue": "={{ $('Get monthly playlist').item.json.description }}"
            }
          ]
        },
        "operation": "create",
        "projectId": "pepq760y5lwt5tm",
        "authentication": "nocoDbApiToken"
      },
      "credentials": {
        "nocoDbApiToken": {
          "id": "9uSbSrDz8EL2OIL7",
          "name": "NocoDB Token account"
        }
      },
      "typeVersion": 3
    },
    {
      "id": "e2c86f04-725c-4af7-b3c2-9c22e2dc64bf",
      "name": "Merge",
      "type": "n8n-nodes-base.merge",
      "position": [
        2040,
        2460
      ],
      "parameters": {
        "mode": "chooseBranch",
        "output": "empty"
      },
      "typeVersion": 2.1
    },
    {
      "id": "036e0d74-3383-44e9-991d-7e062b982b51",
      "name": "Clean op",
      "type": "n8n-nodes-base.noOp",
      "position": [
        1820,
        2200
      ],
      "parameters": {},
      "typeVersion": 1
    },
    {
      "id": "323c9746-f713-4a3d-9af5-9579ec767fca",
      "name": "Clean op2",
      "type": "n8n-nodes-base.noOp",
      "position": [
        1600,
        2800
      ],
      "parameters": {},
      "typeVersion": 1
    },
    {
      "id": "3b0be7ca-c47b-4524-b72a-c37f25c5e4d0",
      "name": "Get this month playlist in DB",
      "type": "n8n-nodes-base.nocoDb",
      "position": [
        2260,
        2460
      ],
      "parameters": {
        "table": "mchan0xys9h7h7e",
        "options": {
          "where": "=(name,eq,{{ $('Get current date').item.json.currentDate.text }})"
        },
        "operation": "getAll",
        "projectId": "pepq760y5lwt5tm",
        "returnAll": true,
        "authentication": "nocoDbApiToken"
      },
      "credentials": {
        "nocoDbApiToken": {
          "id": "9uSbSrDz8EL2OIL7",
          "name": "NocoDB Token account"
        }
      },
      "typeVersion": 3
    },
    {
      "id": "733077e4-c474-4c95-ba05-d0b2375475ad",
      "name": "Get this month tracks in DB",
      "type": "n8n-nodes-base.nocoDb",
      "position": [
        2480,
        2460
      ],
      "parameters": {
        "table": "m0dm2y304t7vmuk",
        "options": {
          "where": "=(playlistName,eq,{{ $('Get current date').item.json.currentDate.text }})"
        },
        "operation": "getAll",
        "projectId": "pepq760y5lwt5tm",
        "returnAll": true,
        "authentication": "nocoDbApiToken"
      },
      "credentials": {
        "nocoDbApiToken": {
          "id": "9uSbSrDz8EL2OIL7",
          "name": "NocoDB Token account"
        }
      },
      "typeVersion": 3
    },
    {
      "id": "6c8ef70f-542d-4454-9ae6-8f4e9778beb0",
      "name": "Add song to the playlist",
      "type": "n8n-nodes-base.spotify",
      "position": [
        3580,
        2460
      ],
      "parameters": {
        "id": "={{ $('Get this month playlist in DB').item.json.uri }}",
        "trackID": "={{ $('For each monthly tracks in DB').item.json.uri }}",
        "resource": "playlist",
        "additionalFields": {}
      },
      "credentials": {
        "spotifyOAuth2Api": {
          "id": "zQrMRwwU6DLh4W77",
          "name": "Spotify account"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "034cd38d-4800-4f9c-9b67-453fdb2afa3c",
      "name": "For each tracks in liked song",
      "type": "n8n-nodes-base.splitInBatches",
      "position": [
        720,
        2680
      ],
      "parameters": {
        "options": {
          "reset": false
        }
      },
      "typeVersion": 3
    },
    {
      "id": "90ff5c0b-e842-437f-be85-a5938288c513",
      "name": "For each monthly tracks in DB",
      "type": "n8n-nodes-base.splitInBatches",
      "position": [
        2700,
        2460
      ],
      "parameters": {
        "options": {}
      },
      "typeVersion": 3
    },
    {
      "id": "decf36a4-fb8c-41eb-ae15-7ba36d621ad7",
      "name": "Get this month tracks in Spotify",
      "type": "n8n-nodes-base.spotify",
      "position": [
        2920,
        2560
      ],
      "parameters": {
        "id": "={{ $('Get this month playlist in DB').item.json.uri }}",
        "resource": "playlist",
        "operation": "getTracks",
        "returnAll": true
      },
      "credentials": {
        "spotifyOAuth2Api": {
          "id": "zQrMRwwU6DLh4W77",
          "name": "Spotify account"
        }
      },
      "typeVersion": 1,
      "alwaysOutputData": true
    },
    {
      "id": "d322a655-e80b-4277-87d9-93e927b2f372",
      "name": "Filter1",
      "type": "n8n-nodes-base.filter",
      "position": [
        3140,
        2560
      ],
      "parameters": {
        "options": {},
        "conditions": {
          "options": {
            "leftValue": "",
            "caseSensitive": true,
            "typeValidation": "strict"
          },
          "combinator": "and",
          "conditions": [
            {
              "id": "a11640e1-f22a-4ce9-abff-976efc57e1d3",
              "operator": {
                "name": "filter.operator.equals",
                "type": "string",
                "operation": "equals"
              },
              "leftValue": "={{ $('For each monthly tracks in DB').item.json.uri }}",
              "rightValue": "={{ $json.track.uri }}"
            }
          ]
        }
      },
      "executeOnce": false,
      "typeVersion": 2,
      "alwaysOutputData": true
    },
    {
      "id": "5027f98d-b973-405f-81cf-534df794325f",
      "name": "Song is not present in the playlist ?",
      "type": "n8n-nodes-base.if",
      "position": [
        3360,
        2560
      ],
      "parameters": {
        "options": {},
        "conditions": {
          "options": {
            "leftValue": "",
            "caseSensitive": true,
            "typeValidation": "strict"
          },
          "combinator": "and",
          "conditions": [
            {
              "id": "1beb843e-53da-48ce-9717-d7797232e4ae",
              "operator": {
                "type": "object",
                "operation": "empty",
                "singleValue": true
              },
              "leftValue": "={{ $json }}",
              "rightValue": ""
            }
          ]
        }
      },
      "typeVersion": 2
    },
    {
      "id": "cd2e3a28-24c1-47d7-ad30-c836e08ad40f",
      "name": "Clean op1",
      "type": "n8n-nodes-base.noOp",
      "position": [
        3800,
        2560
      ],
      "parameters": {},
      "typeVersion": 1
    },
    {
      "id": "56bbb0e9-3ee5-48e3-b0bf-48e8d026daa9",
      "name": "Sticky Note5",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        2220,
        2400
      ],
      "parameters": {
        "width": 1733.785946789966,
        "height": 351.94195615011336,
        "content": "## Check if the song is in the Spotify playlist. If not, add it."
      },
      "typeVersion": 1
    },
    {
      "id": "9834163b-0991-4910-bb4f-cf4557bfa0d5",
      "name": "Schedule Trigger",
      "type": "n8n-nodes-base.scheduleTrigger",
      "position": [
        20,
        2460
      ],
      "parameters": {
        "rule": {
          "interval": [
            {
              "field": "minutes"
            }
          ]
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "72a3c48f-a759-4e0c-b7bb-9f69a5f4377e",
      "name": "End",
      "type": "n8n-nodes-base.noOp",
      "position": [
        4100,
        2260
      ],
      "parameters": {},
      "typeVersion": 1
    }
  ],
  "pinData": {},
  "connections": {
    "Merge": {
      "main": [
        [
          {
            "node": "Get this month playlist in DB",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Filter1": {
      "main": [
        [
          {
            "node": "Song is not present in the playlist ?",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Clean op": {
      "main": [
        [
          {
            "node": "Merge",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Clean op1": {
      "main": [
        [
          {
            "node": "For each monthly tracks in DB",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Clean op2": {
      "main": [
        [
          {
            "node": "For each tracks in liked song",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Is not saved": {
      "main": [
        [
          {
            "node": "Create song entry",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Clean op2",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Get current date": {
      "main": [
        [
          {
            "node": "Get all user playlist",
            "type": "main",
            "index": 0
          },
          {
            "node": "Get last 10 liked tracks",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Schedule Trigger": {
      "main": [
        [
          {
            "node": "Get current date",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Create song entry": {
      "main": [
        [
          {
            "node": "Clean op2",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Get playlist in DB": {
      "main": [
        [
          {
            "node": "Playlist exist  in DB ?",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Get monthly playlist": {
      "main": [
        [
          {
            "node": "Monthly playlist exist in Spotify ?",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Create playlist in DB": {
      "main": [
        [
          {
            "node": "Clean op",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Get all user playlist": {
      "main": [
        [
          {
            "node": "Get monthly playlist",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Create playlist in DB1": {
      "main": [
        [
          {
            "node": "Clean op",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Check if track is saved": {
      "main": [
        [
          {
            "node": "Is not saved",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Playlist exist  in DB ?": {
      "main": [
        [
          {
            "node": "Clean op",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Create playlist in DB",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Add song to the playlist": {
      "main": [
        [
          {
            "node": "Clean op1",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Get last 10 liked tracks": {
      "main": [
        [
          {
            "node": "For each tracks in liked song",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Create playlist in Spotify": {
      "main": [
        [
          {
            "node": "Create playlist in DB1",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Get this month tracks in DB": {
      "main": [
        [
          {
            "node": "For each monthly tracks in DB",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "For each monthly tracks in DB": {
      "main": [
        [
          {
            "node": "End",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Get this month tracks in Spotify",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "For each tracks in liked song": {
      "main": [
        [
          {
            "node": "Merge",
            "type": "main",
            "index": 1
          }
        ],
        [
          {
            "node": "Check if track is saved",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Get this month playlist in DB": {
      "main": [
        [
          {
            "node": "Get this month tracks in DB",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Get this month tracks in Spotify": {
      "main": [
        [
          {
            "node": "Filter1",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Monthly playlist exist in Spotify ?": {
      "main": [
        [
          {
            "node": "Get playlist in DB",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Create playlist in Spotify",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Song is not present in the playlist ?": {
      "main": [
        [
          {
            "node": "Add song to the playlist",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Clean op1",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}

Workflow n8n Spotify, gestion de playlists, musique : pour qui est ce workflow ?

Ce workflow s'adresse aux amateurs de musique, aux créateurs de contenu et aux entreprises souhaitant automatiser la gestion de leurs playlists Spotify. Il est idéal pour les utilisateurs ayant des compétences techniques intermédiaires et qui cherchent à améliorer leur expérience musicale sans intervention manuelle.

Workflow n8n Spotify, gestion de playlists, musique : problème résolu

Ce workflow résout le problème de la gestion manuelle des playlists Spotify, qui peut être chronophage et fastidieux. En automatisant ce processus, les utilisateurs n'ont plus à se soucier de l'ajout de nouveaux morceaux aimés à leur playlist, ce qui réduit le risque d'oublier des chansons importantes. Après la mise en place de ce workflow, les utilisateurs bénéficient d'une playlist toujours à jour, enrichie des dernières découvertes musicales.

Workflow n8n Spotify, gestion de playlists, musique : étapes du workflow

Étape 1 : le déclencheur programmé s'exécute selon un calendrier défini.

  • Étape 1 : récupération de la date actuelle.
  • Étape 2 : interrogation des 10 derniers morceaux aimés sur Spotify.
  • Étape 3 : vérification de l'existence des morceaux dans la base de données NoCoDB.
  • Étape 4 : ajout des morceaux non enregistrés à la base de données et à la playlist Spotify.
  • Étape 5 : vérification de l'existence de la playlist mensuelle dans Spotify et dans la base de données.
  • Étape 6 : création d'une nouvelle playlist si nécessaire.
  • Étape 7 : ajout des morceaux à la playlist mensuelle.

Workflow n8n Spotify, gestion de playlists, musique : guide de personnalisation

Pour personnaliser ce workflow, commencez par ajuster le déclencheur programmé selon vos besoins. Modifiez les paramètres de l'API Spotify pour récupérer des morceaux spécifiques ou élargir le nombre de morceaux à traiter. Vous pouvez également adapter les conditions de vérification dans NoCoDB pour inclure d'autres critères. Pour sécuriser le flux, assurez-vous que vos clés API sont correctement configurées et que les permissions d'accès aux bases de données sont en place. Enfin, envisagez d'ajouter des notifications pour être averti des mises à jour de votre playlist.