Workflow n8n

Automatisation Webhook avec n8n : traitement de données vidéo

Ce workflow n8n a pour objectif de traiter des données vidéo en utilisant un Webhook comme déclencheur. Dans un contexte où les entreprises cherchent à analyser des contenus vidéo pour en extraire des moments clés, ce workflow permet d'automatiser la gestion des données d'intensité. Par exemple, il peut être utilisé par des équipes marketing ou des créateurs de contenu qui souhaitent identifier les moments les plus engageants d'une vidéo.

  • Étape 1 : le workflow commence par un déclencheur Webhook qui reçoit les données vidéo.
  • Étape 2 : il effectue une requête HTTP pour récupérer des informations supplémentaires.
  • Étape 3 : les données sont ensuite filtrées pour vérifier si des données d'intensité sont disponibles. Si aucune donnée n'est trouvée, le workflow répond avec un message approprié.
  • Étape 4 : si des données d'intensité sont présentes, elles sont agrégées et traitées pour créer des moments lisibles par l'homme.
  • Étape 5 : enfin, le workflow renvoie les résultats au format souhaité. Grâce à cette automatisation n8n, les entreprises peuvent gagner du temps, réduire les erreurs humaines et obtenir des insights précieux sur leurs contenus vidéo.
Tags clés :automatisationvideowebhookn8ndata processing
Catégorie: Webhook · Tags: automatisation, video, webhook, n8n, data processing0

Workflow n8n video, webhook, data processing : vue d'ensemble

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

Workflow n8n video, webhook, data processing : détail des nœuds

  • HTTP Request

    Effectue une requête HTTP vers une URL spécifiée.

  • Split Out

    Divise les données en fonction d'un champ spécifié.

  • has intensity data?

    Vérifie si des données d'intensité sont présentes.

  • No intensity data available for video

    N'effectue aucune action lorsque aucune donnée d'intensité n'est disponible.

  • intensity > 0.6

    Filtre les données pour ne conserver que celles dont l'intensité est supérieure à 0.6.

  • Filter out moments close to each other

    Filtre les moments qui sont proches les uns des autres.

  • Input variables

    Définit des variables d'entrée avec des valeurs assignées.

  • Aggregate

    Agrège les données selon des critères spécifiés.

  • Create each moment (human readable)

    Crée des moments sous une forme lisible par un humain.

  • Webhook

    Déclenche un webhook pour recevoir des requêtes externes.

  • millisecs to seconds

    Convertit des millisecondes en secondes.

  • prepare response

    Prépare la réponse à renvoyer avec des données assignées.

  • Respond with moments

    Répond avec les moments disponibles.

  • Sticky Note

    Crée une note autocollante avec des paramètres de couleur et de contenu.

  • Sticky Note1

    Crée une note autocollante supplémentaire avec des spécifications données.

  • Sticky Note2

    Crée une autre note autocollante avec des caractéristiques définies.

  • Sticky Note3

    Crée une note autocollante finale avec des paramètres spécifiés.

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

Inscription gratuite

S'inscrire gratuitementBesoin d'aide ?
{
  "meta": {
    "instanceId": "dbd43d88d26a9e30d8aadc002c9e77f1400c683dd34efe3778d43d27250dde50"
  },
  "nodes": [
    {
      "id": "80b17b5c-6a05-45b9-bfa6-97fe84706687",
      "name": "HTTP Request",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        940,
        320
      ],
      "parameters": {
        "url": "=https://yt.lemnoslife.com/videos?part=mostReplayed&id={{ $json.youtubeVideoID }}",
        "options": {}
      },
      "typeVersion": 4.1
    },
    {
      "id": "12b006e7-83f0-450e-98a8-3b5c3864fac4",
      "name": "Split Out",
      "type": "n8n-nodes-base.splitOut",
      "position": [
        1420,
        260
      ],
      "parameters": {
        "options": {},
        "fieldToSplitOut": "items[0].mostReplayed.markers"
      },
      "typeVersion": 1
    },
    {
      "id": "cb4cdfe1-7601-43e9-b314-818556c4724b",
      "name": "has intensity data?",
      "type": "n8n-nodes-base.if",
      "position": [
        1160,
        320
      ],
      "parameters": {
        "options": {},
        "conditions": {
          "options": {
            "leftValue": "",
            "caseSensitive": true,
            "typeValidation": "strict"
          },
          "combinator": "and",
          "conditions": [
            {
              "id": "91f8b87d-228f-4877-ad25-5b9cef3a0f86",
              "operator": {
                "type": "object",
                "operation": "exists",
                "singleValue": true
              },
              "leftValue": "={{ $json.items[0].mostReplayed }}",
              "rightValue": ""
            }
          ]
        }
      },
      "typeVersion": 2
    },
    {
      "id": "76614979-d1eb-4b9e-8b16-0f22705d0a0a",
      "name": "No intensity data available for video",
      "type": "n8n-nodes-base.noOp",
      "position": [
        1420,
        500
      ],
      "parameters": {},
      "typeVersion": 1
    },
    {
      "id": "7532185d-30c8-4fab-bb95-6aaa1e96c9f5",
      "name": "intensity > 0.6",
      "type": "n8n-nodes-base.filter",
      "position": [
        1620,
        260
      ],
      "parameters": {
        "options": {},
        "conditions": {
          "options": {
            "leftValue": "",
            "caseSensitive": true,
            "typeValidation": "strict"
          },
          "combinator": "and",
          "conditions": [
            {
              "id": "86716013-333d-4418-b516-f86f5098abca",
              "operator": {
                "type": "number",
                "operation": "gt"
              },
              "leftValue": "={{ $json.intensityScoreNormalized }}",
              "rightValue": 0.6
            }
          ]
        }
      },
      "typeVersion": 2
    },
    {
      "id": "6021cfc5-614c-41a5-b08d-557f6b2ceb94",
      "name": "Filter out moments close to each other",
      "type": "n8n-nodes-base.filter",
      "position": [
        2000,
        260
      ],
      "parameters": {
        "options": {},
        "conditions": {
          "options": {
            "leftValue": "",
            "caseSensitive": true,
            "typeValidation": "strict"
          },
          "combinator": "and",
          "conditions": [
            {
              "id": "7f682942-953b-4489-b892-811b0bec22ce",
              "operator": {
                "type": "number",
                "operation": "gt"
              },
              "leftValue": "={{ $input.all()[ $itemIndex + 1].json.startSec }}",
              "rightValue": "={{ $input.all()[ $itemIndex ].json.startSec + 20 }}"
            }
          ]
        }
      },
      "typeVersion": 2
    },
    {
      "id": "99e3d626-b394-48e6-925e-b5eca155720f",
      "name": "Input variables",
      "type": "n8n-nodes-base.set",
      "position": [
        720,
        320
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "fcd7c7ef-8b06-45fa-8257-d44ed772cf08",
              "name": "youtubeVideoID",
              "type": "string",
              "value": "={{ $json.query.ytID }}"
            }
          ]
        }
      },
      "typeVersion": 3.3
    },
    {
      "id": "50e81b17-4b82-4a8f-a559-aff6ee671c7f",
      "name": "Aggregate",
      "type": "n8n-nodes-base.aggregate",
      "position": [
        2400,
        260
      ],
      "parameters": {
        "options": {},
        "aggregate": "aggregateAllItemData",
        "destinationFieldName": "engagingMoments"
      },
      "typeVersion": 1
    },
    {
      "id": "5cfd4462-ff82-499a-9090-e233a6147af6",
      "name": "Create each moment (human readable)",
      "type": "n8n-nodes-base.set",
      "position": [
        2200,
        260
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "2ad5088d-f42a-42f6-931e-bc11e5ce43da",
              "name": "humanReadableMessage",
              "type": "string",
              "value": "=Engaging moment #{{ $itemIndex +1 }}: https://youtu.be/{{ $('Input variables').first().json.youtubeVideoID }}?t={{ $json.startSec.round() - 3 }}\n"
            },
            {
              "id": "dcbe5150-2aaa-46d4-960e-4cad0204dbf4",
              "name": "startSec",
              "type": "string",
              "value": "={{ $json.startSec.round() }}"
            },
            {
              "id": "6a554773-9caf-4682-9e36-5d7dfee6d5f5",
              "name": "directYTURL",
              "type": "string",
              "value": "=https://youtu.be/{{ $('Input variables').first().json.youtubeVideoID }}?t={{ $json.startSec.round() - 3 }}"
            }
          ]
        },
        "includeOtherFields": true
      },
      "typeVersion": 3.3
    },
    {
      "id": "aa70beee-e6ed-4af4-892c-743f8150a57f",
      "name": "Webhook",
      "type": "n8n-nodes-base.webhook",
      "position": [
        500,
        320
      ],
      "webhookId": "21504b31-88e6-4cd9-aaf3-7587427ca5c5",
      "parameters": {
        "path": "youtube-engaging-moments-extractor",
        "options": {},
        "responseMode": "responseNode"
      },
      "typeVersion": 1.1
    },
    {
      "id": "7b55436e-45d7-4fd7-8a08-0127e8dfb299",
      "name": "millisecs to seconds",
      "type": "n8n-nodes-base.set",
      "position": [
        1800,
        260
      ],
      "parameters": {
        "include": "except",
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "8b350b84-b78f-46d4-adfb-7115b64494ba",
              "name": "startSec",
              "type": "number",
              "value": "={{ $json.startMillis / 1000 }}"
            }
          ]
        },
        "excludeFields": "startMillis",
        "includeOtherFields": true
      },
      "typeVersion": 3.3
    },
    {
      "id": "182da3ef-19c0-4356-866d-159d5aa8be16",
      "name": "prepare response",
      "type": "n8n-nodes-base.set",
      "position": [
        2620,
        260
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "35261be7-c208-4025-bca1-0b41cf011c38",
              "name": "youtubeID",
              "type": "string",
              "value": "={{ $('Webhook').item.json.query.ytID }}"
            }
          ]
        },
        "includeOtherFields": true
      },
      "typeVersion": 3.3
    },
    {
      "id": "03830a21-13b3-426d-b972-43ded224b66f",
      "name": "Respond with \"no results\"",
      "type": "n8n-nodes-base.respondToWebhook",
      "position": [
        1660,
        500
      ],
      "parameters": {
        "options": {},
        "respondWith": "json",
        "responseBody": "={\n  \"engagingMoments\": null,\n  \"youtubeID\": \"{{ $('Webhook').item.json.query.ytID }}\"\n}"
      },
      "typeVersion": 1
    },
    {
      "id": "d7e8441c-a429-490b-8993-c714fcbb61a2",
      "name": "Respond with moments",
      "type": "n8n-nodes-base.respondToWebhook",
      "position": [
        2860,
        260
      ],
      "parameters": {
        "options": {}
      },
      "typeVersion": 1
    },
    {
      "id": "cfa06a1f-8e50-4e91-9a18-5b77e315a816",
      "name": "Sticky Note",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1620,
        480
      ],
      "parameters": {
        "color": 3,
        "width": 307.626814098134,
        "height": 357.96212854181044,
        "content": "\n\n\n\n\n\n\n\n\n\n\n\n\n\nExample response 👇\n![](https://i.ibb.co/7VZVFBh/error-response.png#full-width)"
      },
      "typeVersion": 1
    },
    {
      "id": "3c4b9ced-1713-4f02-8a95-519e2e4f2ce8",
      "name": "Sticky Note1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        2800,
        240
      ],
      "parameters": {
        "color": 4,
        "width": 402.30435383552106,
        "height": 480.9199723565991,
        "content": "\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nExample response 👇\n![](https://i.ibb.co/ssymRNt/success-response.png#full-width)"
      },
      "typeVersion": 1
    },
    {
      "id": "15e8201c-6b72-40f6-bdd2-441a74424aa3",
      "name": "Sticky Note2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        500,
        -180
      ],
      "parameters": {
        "color": 5,
        "width": 362.9578438147888,
        "height": 424.35936420179615,
        "content": "## Extract engaging moments from YouTube video\nThis template takes a YouTube video ID and returns potentially engaging moments, based on the \"intensity\" of a certain timestamp 👇\n\n![](https://i.ibb.co/Xz2CDnW/Screenshot-2024-02-28-at-15-51-02.png#full-width)"
      },
      "typeVersion": 1
    },
    {
      "id": "3edebeb4-c842-4366-a05a-d463fffe449f",
      "name": "Sticky Note3",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        880,
        60
      ],
      "parameters": {
        "color": 5,
        "width": 445.3395991706974,
        "height": 184.59156876295762,
        "content": "### How to use\n1. Open `Webhook` node and copy the `Production URL`\n2. Activate the workflow\n3. In a web browser, PostMan or n8n HTTP Request invoke the Production URL: `{prod url}?ytID={youtube ID}`. \ne.g. `{your instance URL}/webhook/youtube-engaging-moments-extractor?ytID=IZsQqarWXtYy`"
      },
      "typeVersion": 1
    }
  ],
  "pinData": {},
  "connections": {
    "Webhook": {
      "main": [
        [
          {
            "node": "Input variables",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Aggregate": {
      "main": [
        [
          {
            "node": "prepare response",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Split Out": {
      "main": [
        [
          {
            "node": "intensity > 0.6",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "HTTP Request": {
      "main": [
        [
          {
            "node": "has intensity data?",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Input variables": {
      "main": [
        [
          {
            "node": "HTTP Request",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "intensity > 0.6": {
      "main": [
        [
          {
            "node": "millisecs to seconds",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "prepare response": {
      "main": [
        [
          {
            "node": "Respond with moments",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "has intensity data?": {
      "main": [
        [
          {
            "node": "Split Out",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "No intensity data available for video",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "millisecs to seconds": {
      "main": [
        [
          {
            "node": "Filter out moments close to each other",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Create each moment (human readable)": {
      "main": [
        [
          {
            "node": "Aggregate",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "No intensity data available for video": {
      "main": [
        [
          {
            "node": "Respond with \"no results\"",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Filter out moments close to each other": {
      "main": [
        [
          {
            "node": "Create each moment (human readable)",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}

Workflow n8n video, webhook, data processing : pour qui est ce workflow ?

Ce workflow s'adresse aux équipes marketing, aux créateurs de contenu et aux entreprises qui manipulent des vidéos et souhaitent automatiser l'analyse des moments clés. Un niveau technique intermédiaire est recommandé pour la mise en œuvre.

Workflow n8n video, webhook, data processing : problème résolu

Ce workflow résout le problème de l'analyse manuelle des vidéos, qui peut être chronophage et sujette à des erreurs. En automatisant le processus de détection des moments d'intensité, il permet aux utilisateurs de se concentrer sur l'interprétation des données plutôt que sur la collecte. Les utilisateurs bénéficient ainsi d'une efficacité accrue et d'une meilleure compréhension de l'engagement de leur audience.

Workflow n8n video, webhook, data processing : étapes du workflow

Étape 1 : le workflow démarre avec un Webhook qui reçoit les données vidéo.

  • Étape 1 : il effectue une requête HTTP pour obtenir des informations supplémentaires.
  • Étape 2 : une vérification est effectuée pour déterminer si des données d'intensité sont disponibles.
  • Étape 3 : si aucune donnée n'est trouvée, le workflow répond avec un message indiquant qu'aucun résultat n'est disponible.
  • Étape 4 : si des données d'intensité sont présentes, elles sont filtrées pour ne conserver que celles supérieures à 0.6.
  • Étape 5 : les moments sont ensuite agrégés et formatés pour être facilement lisibles.
  • Étape 6 : le workflow termine en renvoyant les moments pertinents au format souhaité.

Workflow n8n video, webhook, data processing : guide de personnalisation

Pour personnaliser ce workflow, vous pouvez modifier l'URL du Webhook pour l'adapter à votre application. Il est également possible d'ajuster les paramètres de filtrage des données d'intensité selon vos besoins spécifiques. Si vous souhaitez intégrer d'autres outils, vous pouvez ajouter des noeuds supplémentaires après la requête HTTP. Assurez-vous de tester le flux pour vérifier que les réponses sont correctement formatées et que les données sont bien traitées.