Workflow n8n

Automatisation TikTok avec n8n : téléchargement de vidéos facilement

  • Ce workflow n8n a pour objectif de simplifier le processus de téléchargement de vidéos TikTok en permettant aux utilisateurs de récupérer facilement des vidéos sans filigrane. Dans un contexte où le partage de contenu vidéo est essentiel pour les créateurs et les marketeurs, ce workflow offre une solution efficace pour obtenir des vidéos directement depuis TikTok. Il est particulièrement utile pour les entreprises souhaitant réutiliser du contenu vidéo pour leurs campagnes marketing ou pour les utilisateurs souhaitant conserver leurs vidéos préférées.
  • Le workflow commence par un déclencheur manuel, permettant à l'utilisateur de lancer le processus à tout moment. Ensuite, il utilise un nœud HTTP pour obtenir les données de la page de la vidéo TikTok, suivi d'un nœud de code qui extrait l'URL brute de la vidéo. Une fois l'URL récupérée, un autre nœud HTTP est utilisé pour télécharger la vidéo sans le filigrane. Pour faciliter l'organisation, les vidéos téléchargées sont ensuite uploadées sur Google Drive, où des permissions sont définies pour rendre le fichier accessible publiquement via un lien.
  • Les bénéfices de ce workflow sont multiples : il permet de gagner du temps en automatisant le processus de téléchargement, réduit les risques d'erreurs manuelles et offre une solution pratique pour gérer et partager des vidéos. Avec cette automatisation n8n, les utilisateurs peuvent facilement enrichir leur bibliothèque de contenu vidéo tout en respectant les droits d'auteur.
Tags clés :automatisationTikTokGoogle Driveworkflowvidéo
Catégorie: Manual · Tags: automatisation, TikTok, Google Drive, workflow, vidéo0

Workflow n8n TikTok, Google Drive, vidéo : vue d'ensemble

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

Workflow n8n TikTok, Google Drive, vidéo : détail des nœuds

  • When clicking ‘Test workflow’

    Ce noeud déclenche le workflow manuellement lorsque l'utilisateur clique sur 'Test workflow'.

  • Get TikTok Video Page Data

    Ce noeud effectue une requête HTTP pour récupérer les données de la page d'une vidéo TikTok.

  • Scrape raw video URL

    Ce noeud exécute un code JavaScript pour extraire l'URL brute de la vidéo.

  • Output video file without watermark

    Ce noeud envoie une requête HTTP pour obtenir le fichier vidéo sans watermark.

  • Sticky Note

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

  • Sticky Note1

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

  • Sticky Note2

    Ce noeud génère une troisième note autocollante avec des spécifications de couleur, de taille et de contenu.

  • Upload to Google Drive

    Ce noeud télécharge un fichier sur Google Drive avec les paramètres spécifiés.

  • Set file permissions to public with link

    Ce noeud modifie les permissions d'un fichier sur Google Drive pour le rendre public avec un lien.

  • Sticky Note3

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

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

Inscription gratuite

S'inscrire gratuitementBesoin d'aide ?
{
  "id": "aVienX696oMCH1DR",
  "meta": {
    "instanceId": "dce6d05169adc9f802863a06c3edb9925b178c4fce2360953cce9c1b509705cc"
  },
  "name": "Tiktok Downloader",
  "tags": [],
  "nodes": [
    {
      "id": "4dc30078-c7df-4bcb-91ed-953cd6da4a13",
      "name": "When clicking ‘Test workflow’",
      "type": "n8n-nodes-base.manualTrigger",
      "position": [
        -280,
        20
      ],
      "parameters": {},
      "typeVersion": 1
    },
    {
      "id": "5598aa10-f667-4023-b9de-fe07e86badec",
      "name": "Get TikTok Video Page Data",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        40,
        20
      ],
      "parameters": {
        "url": "https://www.tiktok.com/@randomspamvideos25/video/7251387037834595630",
        "options": {
          "response": {
            "response": {
              "fullResponse": true,
              "responseFormat": "text"
            }
          }
        },
        "sendHeaders": true,
        "headerParameters": {
          "parameters": [
            {
              "name": "User-Agent",
              "value": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) Chrome/91.0.4472.124"
            }
          ]
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "734a5304-f67f-4ace-a1da-0d268664452c",
      "name": "Scrape raw video URL",
      "type": "n8n-nodes-base.code",
      "position": [
        480,
        20
      ],
      "parameters": {
        "jsCode": "const html = $input.first().json.data;\nconst headers = $input.first().json.headers || {};\nconst cookies = headers['set-cookie'] || [];\n\nif (!html) {\n  throw new Error(\"HTML body is undefined. Check the previous node's output.\");\n}\nconst regex = /<script id=\"__UNIVERSAL_DATA_FOR_REHYDRATION__\" type=\"application\\/json\">([\\s\\S]*?)<\\/script>/;\nconst match = html.match(regex);\n\nif (match) {\n  const jsonStr = match[1];\n  const data = JSON.parse(jsonStr);\n  const videoUrl = data?.__DEFAULT_SCOPE__?.[\"webapp.video-detail\"]?.itemInfo?.itemStruct?.video?.playAddr;\n  if (!videoUrl) {\n    throw new Error(\"Could not find video URL in the JSON data.\");\n  }\n  return [{ json: { videoUrl, cookies: cookies.join('; ') } }];\n} else {\n  throw new Error(\"Could not find __UNIVERSAL_DATA_FOR_REHYDRATION__ script in the HTML.\");\n}"
      },
      "typeVersion": 2
    },
    {
      "id": "f574ccb8-6f5f-4e55-a2d5-7ad775d3c4e5",
      "name": "Output video file without watermark",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        900,
        20
      ],
      "parameters": {
        "url": "={{ $json.videoUrl }}",
        "options": {
          "response": {
            "response": {
              "responseFormat": "file"
            }
          },
          "allowUnauthorizedCerts": true
        },
        "sendHeaders": true,
        "headerParameters": {
          "parameters": [
            {
              "name": "User-Agent",
              "value": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36"
            },
            {
              "name": "Referer",
              "value": "https://www.tiktok.com/"
            },
            {
              "name": "Accept",
              "value": "video/mp4,video/webm,video/*;q=0.9,application/octet-stream;q=0.8"
            },
            {
              "name": "Accept-Language",
              "value": "en-US,en;q=0.5"
            },
            {
              "name": "Connection",
              "value": "keep-alive"
            },
            {
              "name": "Cookie",
              "value": "={{ $json.cookies }}"
            }
          ]
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "73d4ffa7-2264-4a84-9ab2-2004342e3039",
      "name": "Sticky Note",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -140,
        -180
      ],
      "parameters": {
        "color": 6,
        "width": 460,
        "height": 360,
        "content": "## 1. Load the video page\nOpen this node and replace the URL with the one of the video you want to download without a watermark.\n\nA Tiktok video URL looks like: https://www.tiktok.com/@Username_here/video/Video_ID_Here\n\nOutputs the returned page HTML along with the session cookies\n\n"
      },
      "typeVersion": 1
    },
    {
      "id": "848fc04b-2620-4d83-8701-52c053f7c017",
      "name": "Sticky Note1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        340,
        -180
      ],
      "parameters": {
        "color": 5,
        "width": 380,
        "height": 360,
        "content": "## 2. Find the raw video URL\nParses through all of the HTML and finds the section containing the video URL before the watermark is applied"
      },
      "typeVersion": 1
    },
    {
      "id": "40b3a2bd-5733-43a8-951c-d5fa26647615",
      "name": "Sticky Note2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        740,
        -180
      ],
      "parameters": {
        "color": 4,
        "width": 400,
        "height": 360,
        "content": "## 3. Output video file without watermark\nUsing the cookies from step 1, a request is made to access the original video file as shown on TikTok"
      },
      "typeVersion": 1
    },
    {
      "id": "36629265-f139-433f-9603-0670a08be1ed",
      "name": "Upload to Google Drive",
      "type": "n8n-nodes-base.googleDrive",
      "position": [
        300,
        360
      ],
      "parameters": {
        "name": "={{ $node[\"Get TikTok Video Page Data\"].parameter[\"url\"].match(/\\/video\\/(\\d+)/)[1] + \".mp4\" }}",
        "driveId": {
          "__rl": true,
          "mode": "list",
          "value": "My Drive"
        },
        "options": {},
        "folderId": {
          "__rl": true,
          "mode": "list",
          "value": "root",
          "cachedResultUrl": "https://drive.google.com/drive",
          "cachedResultName": "/ (Root folder)"
        }
      },
      "credentials": {
        "googleDriveOAuth2Api": {
          "id": "ZvDuyVfbZJbDJXcS",
          "name": "Google Drive account"
        }
      },
      "typeVersion": 3
    },
    {
      "id": "94364c83-14ce-48c3-afe5-b7cd8addd2a0",
      "name": "Set file permissions to public with link",
      "type": "n8n-nodes-base.googleDrive",
      "position": [
        560,
        360
      ],
      "parameters": {
        "fileId": {
          "__rl": true,
          "mode": "id",
          "value": "={{ $json.id }}"
        },
        "options": {},
        "operation": "share",
        "permissionsUi": {
          "permissionsValues": {
            "role": "writer",
            "type": "anyone",
            "allowFileDiscovery": true
          }
        }
      },
      "credentials": {
        "googleDriveOAuth2Api": {
          "id": "ZvDuyVfbZJbDJXcS",
          "name": "Google Drive account"
        }
      },
      "typeVersion": 3
    },
    {
      "id": "d37ad36c-0b7f-4c2c-9538-dc8bf75e997f",
      "name": "Sticky Note3",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        260,
        200
      ],
      "parameters": {
        "color": 7,
        "width": 500,
        "height": 320,
        "content": "## (Optional) Upload video to Google Drive\nAn expression is used to save the file to your Google Drive as Video_ID.mp4\n\nNote: Must have Google Drive API enabled in [Google Cloud Console](https://console.cloud.google.com/apis/api/drive.googleapis.com/overview) OAuth ClientID and Client Secret credentials setup"
      },
      "typeVersion": 1
    }
  ],
  "active": false,
  "pinData": {},
  "settings": {
    "executionOrder": "v1"
  },
  "versionId": "70234bbb-ccaf-4291-a50b-063e07303678",
  "connections": {
    "Scrape raw video URL": {
      "main": [
        [
          {
            "node": "Output video file without watermark",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Upload to Google Drive": {
      "main": [
        [
          {
            "node": "Set file permissions to public with link",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Get TikTok Video Page Data": {
      "main": [
        [
          {
            "node": "Scrape raw video URL",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "When clicking ‘Test workflow’": {
      "main": [
        [
          {
            "node": "Get TikTok Video Page Data",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Output video file without watermark": {
      "main": [
        [
          {
            "node": "Upload to Google Drive",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}

Workflow n8n TikTok, Google Drive, vidéo : pour qui est ce workflow ?

Ce workflow s'adresse aux créateurs de contenu, aux marketeurs et aux entreprises qui souhaitent réutiliser des vidéos TikTok pour leurs campagnes. Il est conçu pour des utilisateurs ayant un niveau technique moyen, et peut être utilisé par des équipes de toutes tailles cherchant à optimiser leur gestion de contenu vidéo.

Workflow n8n TikTok, Google Drive, vidéo : problème résolu

Ce workflow résout le problème du téléchargement de vidéos TikTok, souvent compliqué par les restrictions de la plateforme. Il élimine les frustrations liées à la recherche de méthodes manuelles pour obtenir des vidéos sans filigrane, réduisant ainsi le temps passé à gérer le contenu. Grâce à cette automatisation, les utilisateurs peuvent facilement récupérer et stocker des vidéos, ce qui leur permet de se concentrer sur la création et la diffusion de contenu.

Workflow n8n TikTok, Google Drive, vidéo : étapes du workflow

Étape 1 : L'utilisateur déclenche manuellement le workflow.

  • Étape 1 : Le workflow effectue une requête HTTP pour récupérer les données de la vidéo TikTok.
  • Étape 2 : Un code JavaScript extrait l'URL brute de la vidéo.
  • Étape 3 : Une autre requête HTTP est faite pour télécharger la vidéo sans le filigrane.
  • Étape 4 : La vidéo est ensuite uploadée sur Google Drive.
  • Étape 5 : Les permissions du fichier sont réglées pour le rendre accessible publiquement via un lien.

Workflow n8n TikTok, Google Drive, vidéo : guide de personnalisation

Pour personnaliser ce workflow, vous pouvez modifier l'URL de la vidéo TikTok dans le nœud HTTP. Assurez-vous également de configurer le nom du fichier lors de l'upload sur Google Drive pour qu'il soit identifiable. Si vous souhaitez utiliser un autre service de stockage, remplacez le nœud Google Drive par celui de votre choix. Pensez à vérifier les permissions pour garantir que le fichier est accessible selon vos besoins. Enfin, vous pouvez ajouter des nœuds supplémentaires pour intégrer d'autres services ou automatisations selon vos objectifs.