0

I'm trying to do a telegram bot who send vidéo

import fetch from 'node-fetch'

fetch("https://api.telegram.org/bot<api>/sendVideo", {
    method: "POST",
    headers: {
        "Content-Type": "multipart/form-data",
    },
    body: JSON.stringify({
        chat_id: <chat.id>,
        video: "C:\\output\\output.webm",
        caption: "test"
    })
}).then(res => res.json()).then(json => console.log(json));

hello, i am making a telegram bot that sends some video on demand but i have a problem while uploading the video to telegram servers, can you help me? thx

and I have this error

Uncaught SyntaxError SyntaxError: Unexpected end of JSON input at json (undefined:149:15) at processTicksAndRejections (undefined:96:5) Aucun débogueur disponible. Impossible d'envoyer 'variables' Process exited with code 1

Aekyios
  • 3
  • 1

1 Answers1

0

it's because you are trying to include a local file path in the video property.

You can try this code:

const fetch = require('node-fetch');
const fs = require('fs');

const token = '<YOUR_BOT_TOKEN>';
const chatId = '<CHAT_ID>';

const video = fs.readFileSync('<PATH_TO_VIDEO_FILE>');

fetch(`https://api.telegram.org/bot${token}/sendVideo`, {
  method: 'POST',
  headers: {
    'Content-Type': 'multipart/form-data',
  },
  body: JSON.stringify({
    chat_id: chatId,
    video: {
      value: video,
      options: {
        filename: 'video.mp4',
        contentType: 'video/mp4',
      },
    },
    caption: 'test',
  }),
})
  .then((res) => res.json())
  .then((json) => console.log(json))
  .catch((err) => console.error(err));
yanir midler
  • 2,153
  • 1
  • 4
  • 16