Workflow n8n

Automatisation Spotify avec n8n : gestion de playlists automatisée

Ce workflow n8n permet d'automatiser la gestion des playlists sur Spotify, offrant ainsi une solution efficace pour les utilisateurs souhaitant organiser leur musique sans effort. Dans un contexte où la musique joue un rôle central dans notre quotidien, ce workflow s'adresse à tous ceux qui souhaitent optimiser leur expérience d'écoute en automatisant l'ajout de nouvelles pistes à leurs playlists. Que ce soit pour des artistes, des genres ou des albums spécifiques, ce processus simplifie la gestion musicale.

  • Étape 1 : Le déclencheur CRON active le workflow à intervalles réguliers.
  • Étape 2 : Le nœud 'Get User's Playlists' récupère les playlists de l'utilisateur.
  • Étape 3 : Un nœud 'Switch' permet de déterminer les actions à entreprendre en fonction des playlists disponibles.
  • Étape 4 : Les nœuds 'Get Discover Tracks' et 'Get Archive Tracks' récupèrent respectivement les nouvelles pistes à ajouter et les pistes archivées.
  • Étape 5 : Le nœud 'Merge' combine ces données pour créer une liste complète.
  • Étape 6 : Une vérification est effectuée pour s'assurer que des pistes doivent être ajoutées, grâce au nœud 'Check if tracks to add is NOT empty'. Enfin, les pistes sont ajoutées à la playlist d'archive via le nœud 'Add tracks to Archive playlist'. Cette automatisation n8n permet de gagner du temps et d'assurer une expérience d'écoute toujours renouvelée, tout en réduisant les risques d'oubli de nouvelles musiques.
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

  • CRON

    Ce noeud déclenche le workflow selon une règle de planification définie.

  • Get User's Playlists

    Ce noeud récupère les playlists d'un utilisateur à partir de Spotify.

  • Switch

    Ce noeud permet de diriger le flux de données en fonction de conditions spécifiées.

  • Get Discover Tracks

    Ce noeud récupère des pistes de découverte à partir de Spotify.

  • Get Archive Tracks

    Ce noeud récupère des pistes archivées à partir de Spotify.

  • Merge

    Ce noeud fusionne plusieurs ensembles de données selon des critères définis.

  • Sticky Note

    Ce noeud crée une note autocollante avec des paramètres de couleur, taille et contenu.

  • Check if tracks to add is NOT empty

    Ce noeud vérifie si la liste des pistes à ajouter n'est pas vide.

  • Add tracks to Archive playlist

    Ce noeud ajoute des pistes à une playlist d'archive sur Spotify.

  • Sticky Note1

    Ce noeud crée une seconde note autocollante avec des paramètres de couleur, taille et contenu.

  • Sticky Note2

    Ce noeud crée une troisième note autocollante avec des paramètres de couleur, taille et contenu.

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

Inscription gratuite

S'inscrire gratuitementBesoin d'aide ?
{
  "meta": {
    "instanceId": "dbd383feb42b0206c833e3d762df280d0cce35cf96037fb2d6f3533c171dc540"
  },
  "nodes": [
    {
      "id": "b605b875-85cf-4210-8027-ce7b9b7069b9",
      "name": "CRON",
      "type": "n8n-nodes-base.scheduleTrigger",
      "notes": "Every Monday @ 8:30am",
      "position": [
        820,
        360
      ],
      "parameters": {
        "rule": {
          "interval": [
            {
              "field": "cronExpression",
              "expression": "30 8 * * MON"
            }
          ]
        }
      },
      "notesInFlow": true,
      "typeVersion": 1.1
    },
    {
      "id": "edd9d7b6-9ac4-4acf-8f4b-4cbe943dfd34",
      "name": "Get User's Playlists",
      "type": "n8n-nodes-base.spotify",
      "position": [
        1060,
        360
      ],
      "parameters": {
        "resource": "playlist",
        "operation": "getUserPlaylists",
        "returnAll": true
      },
      "credentials": {
        "spotifyOAuth2Api": {
          "id": "",
          "name": "Placeholder"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "98cf8fdc-556a-452a-8df6-16a98c17613e",
      "name": "Switch",
      "type": "n8n-nodes-base.switch",
      "notes": "Find Discover and Archive playlist by name",
      "position": [
        1280,
        360
      ],
      "parameters": {
        "rules": {
          "rules": [
            {
              "value2": "Discover Weekly",
              "outputKey": "disc"
            },
            {
              "value2": "Discover Weekly Archive",
              "outputKey": "arch"
            }
          ]
        },
        "value1": "={{ $json.name }}",
        "dataType": "string"
      },
      "notesInFlow": true,
      "typeVersion": 2
    },
    {
      "id": "d27ee5c1-86d8-4a6a-adcb-90bf59280550",
      "name": "Get Discover Tracks",
      "type": "n8n-nodes-base.spotify",
      "position": [
        1560,
        240
      ],
      "parameters": {
        "id": "={{ $json.uri }}",
        "resource": "playlist",
        "operation": "getTracks",
        "returnAll": true
      },
      "credentials": {
        "spotifyOAuth2Api": {
          "id": "",
          "name": "Placeholder"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "e276dce6-d3d2-41a0-96b6-68e115ed198e",
      "name": "Get Archive Tracks",
      "type": "n8n-nodes-base.spotify",
      "position": [
        1560,
        460
      ],
      "parameters": {
        "id": "={{ $json.uri }}",
        "resource": "playlist",
        "operation": "getTracks",
        "returnAll": true
      },
      "credentials": {
        "spotifyOAuth2Api": {
          "id": "",
          "name": "Placeholder"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "c619085b-424d-4ff5-b3eb-fa0eed05ce0d",
      "name": "Merge",
      "type": "n8n-nodes-base.merge",
      "position": [
        1840,
        360
      ],
      "parameters": {
        "mode": "combine",
        "options": {},
        "joinMode": "keepNonMatches",
        "mergeByFields": {
          "values": [
            {
              "field1": "track.uri",
              "field2": "track.uri"
            }
          ]
        },
        "outputDataFrom": "input1"
      },
      "typeVersion": 2.1,
      "alwaysOutputData": true
    },
    {
      "id": "6981f3b3-e1d4-415b-b2c2-d05646271270",
      "name": "Sticky Note",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1760,
        180
      ],
      "parameters": {
        "color": 7,
        "width": 262,
        "height": 354,
        "content": "#### Purpose\n\nCompares tracks using `Combine` operation to output **non-matching** Discover Weekly tracks to ensure that duplicates are not appended to the Archive playlist"
      },
      "typeVersion": 1
    },
    {
      "id": "65a9ef93-afac-4f86-9203-73e24bcdb500",
      "name": "Check if tracks to add is NOT empty",
      "type": "n8n-nodes-base.if",
      "position": [
        2100,
        360
      ],
      "parameters": {
        "options": {},
        "conditions": {
          "options": {
            "leftValue": "",
            "caseSensitive": true,
            "typeValidation": "strict"
          },
          "combinator": "and",
          "conditions": [
            {
              "id": "81f9e3a7-eef0-462c-9d82-db894b19a110",
              "operator": {
                "type": "object",
                "operation": "notEmpty",
                "singleValue": true
              },
              "leftValue": "={{ $json }}",
              "rightValue": ""
            }
          ]
        }
      },
      "typeVersion": 2
    },
    {
      "id": "604717ae-90ab-412b-bc83-15399d18c0d4",
      "name": "Add tracks to Archive playlist",
      "type": "n8n-nodes-base.spotify",
      "position": [
        2360,
        220
      ],
      "parameters": {
        "id": "={{ $('Switch').all(1).first().json.uri }}",
        "trackID": "={{ $json.track.uri }}",
        "resource": "playlist",
        "additionalFields": {}
      },
      "credentials": {
        "spotifyOAuth2Api": {
          "id": "",
          "name": "Placeholder"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "34ddb49e-ebfe-46ff-a348-959befe5e86c",
      "name": "Sticky Note1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        2580,
        280
      ],
      "parameters": {
        "color": 7,
        "width": 634,
        "height": 190,
        "content": "### Do anything else here\n\nFor example, in my personal workflow, after the tracks have been added to to my Archive playlist, I send a `POST` request to my self-hosted [NTFY](https://docs.ntfy.sh) server to notify me that my Discover Weekly playlist has refreshed, and I also provide the links to easily open the playlists within the notification that is sent.\n\nThe possibilities are endless with n8n!"
      },
      "typeVersion": 1
    },
    {
      "id": "c5c18f22-2c1f-4e65-83fc-7f89c5e44828",
      "name": "Sticky Note2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        820,
        -418.42807424594014
      ],
      "parameters": {
        "color": 4,
        "width": 605.1751740139206,
        "height": 733.4280742459401,
        "content": "## README\n\nThis workflow will automatically archive your Spotify `Discover Weekly` playlist to a separate playlist. One additional caveat this workflow addresses is it will compare the refreshed `Discover Weekly` tracks against your archive playlist's existing tracks to ensure only unique tracks are added to your archive playlist. This helps reduce clutter within the archive playlist. \n\n### Setup Instructions (Required)\n1. **Within your Spotify account, create a new playlist**\n  You may name this playlist whatever you like. The default name within the workflow is `Discover Weekly Archive`. If you decide on another name, ensure you update the `Switch` node output with the key of `arch` to the name of the playlist you set.\n\n2. **Create your Spotify credential(s) and update each Spotify node with your created credential**\n  Follow the instructions within the [n8n docs](https://docs.n8n.io/integrations/builtin/credentials/spotify/) to create your Spotify credential, then select the credential in the `Get User's Playlists`, `Get Discover Tracks`, `Get Archive Tracks`, and `Add tracks to Archive playlist` nodes.\n\n3. **Activate the workflow to run workflow based on the Cron expression set in the `Schedule` trigger node.**\n\n### Optional Setup\n- Update the Cron expression within the `Schedule` trigger node with an earlier or later time if your `GENERIC_TIMEZONE` is set. You may also consider setting the workflow timezone as well. For assistance with Cron expressions, refer to the [n8n docs](https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.scheduletrigger/#generate-a-custom-cron-expression).\n- Add nodes to the end of the workflow to send notifications, update a spreadsheet, or any other operation/action you'd like to perform in conjunction with archiving your Discover Weekly tracks\n- Setup a error workflow to handle any thing that goes wrong within the workflow. You can find an example [here](https://n8n.io/workflows/696-send-email-via-gmail-on-workflow-error/) or more information concerning handling errors within the [n8n docs](https://docs.n8n.io/courses/level-two/chapter-4/).\n"
      },
      "typeVersion": 1
    }
  ],
  "pinData": {},
  "connections": {
    "CRON": {
      "main": [
        [
          {
            "node": "Get User's Playlists",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Merge": {
      "main": [
        [
          {
            "node": "Check if tracks to add is NOT empty",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Switch": {
      "main": [
        [
          {
            "node": "Get Discover Tracks",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Get Archive Tracks",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Get Archive Tracks": {
      "main": [
        [
          {
            "node": "Merge",
            "type": "main",
            "index": 1
          }
        ]
      ]
    },
    "Get Discover Tracks": {
      "main": [
        [
          {
            "node": "Merge",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Get User's Playlists": {
      "main": [
        [
          {
            "node": "Switch",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Check if tracks to add is NOT empty": {
      "main": [
        [
          {
            "node": "Add tracks to Archive playlist",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}

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

Ce workflow s'adresse aux utilisateurs de Spotify, qu'ils soient amateurs de musique ou professionnels de l'industrie musicale. Il est idéal pour les équipes marketing, les créateurs de contenu et toute personne cherchant à automatiser la gestion de leurs playlists tout en ayant un niveau technique intermédiaire.

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

Ce workflow résout le problème de la gestion manuelle des playlists sur Spotify, qui peut être fastidieuse et chronophage. En automatisant ce processus, les utilisateurs peuvent se concentrer sur la découverte de nouvelles musiques sans craindre d'oublier d'ajouter des morceaux à leurs playlists. Cela réduit également le risque de ne pas profiter pleinement de l'expérience musicale offerte par Spotify, permettant ainsi une écoute plus fluide et agréable.

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

Étape 1 : Le déclencheur CRON active le workflow à des intervalles définis.

  • Étape 1 : Le nœud 'Get User's Playlists' récupère toutes les playlists de l'utilisateur.
  • Étape 2 : Le nœud 'Switch' détermine les actions à entreprendre selon les playlists disponibles.
  • Étape 3 : Les nœuds 'Get Discover Tracks' et 'Get Archive Tracks' obtiennent respectivement les nouvelles pistes à ajouter et les pistes déjà archivées.
  • Étape 4 : Le nœud 'Merge' combine ces informations pour créer une liste complète de pistes.
  • Étape 5 : Le nœud 'Check if tracks to add is NOT empty' vérifie la présence de pistes à ajouter.
  • Étape 6 : Si des pistes sont disponibles, le nœud 'Add tracks to Archive playlist' les ajoute à la playlist d'archive.

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

Pour personnaliser ce workflow, vous pouvez modifier le déclencheur CRON pour ajuster la fréquence d'exécution selon vos besoins. Il est également possible de changer les paramètres des nœuds 'Get User's Playlists' et 'Add tracks to Archive playlist' pour cibler des playlists spécifiques ou modifier les critères de sélection des pistes. Pensez à vérifier les identifiants de vos playlists Spotify et à adapter les paramètres de chaque nœud en conséquence. Pour une meilleure sécurité, vous pouvez également intégrer des mécanismes de monitoring pour suivre l'exécution du workflow.