scraper - Youtube Converter

Dalam artikel ini, kita akan membahas cara membuat converter audio dan video menggunakan Node.js dengan bantuan library axios.

Muhamad Nur Ibad

12 Januari 20251 menit baca

Membuat Audio dan Video Converter Menggunakan Node.js

Dalam artikel ini, kita akan membahas cara membuat converter audio dan video menggunakan Node.js dengan bantuan library axios. Converter ini memanfaatkan API dari situs cnvmp3.com untuk mengunduh video atau audio dari YouTube dalam berbagai format dan kualitas.

Fitur yang Akan Dibangun

1. Mendapatkan Informasi Video: Mengambil data seperti judul video dari URL.

2. Mengonversi Video atau Audio: Mengunduh video atau audio berdasarkan format dan kualitas yang diinginkan.

Langkah-langkah Implementasi

Berikut adalah langkah-langkah untuk membangun converter ini.


Instalasi Library

Pertama, pastikan Node.js dan npm sudah terinstal di komputer Anda. Kemudian, instal library axios dengan perintah berikut:

npm install axios


Implementasi Kode

Berikut adalah kode lengkap untuk converter:

const axios = require('axios');

// Format dan kualitas yang tersedia
const formats = { audio: 1, video: 0 };
const audioQuality = { '320kbps': 0, '256kbps': 1, '128kbps': 4, '96kbps': 5 };
const videoQuality = { '144p': 144, '360p': 360, '480p': 480, '720p': 720, '1080p': 1080 };

const cnv = {
  // Fungsi untuk mendapatkan informasi video
  getData: async (url) => {
    const data = JSON.stringify({ url });

    const config = {
      method: 'POST',
      url: 'https://cnvmp3.com/get_video_data.php',
      headers: {
        'User-Agent': 'Mozilla/5.0 (Android 10; Mobile; rv:131.0) Gecko/131.0 Firefox/131.0',
        'Content-Type': 'application/json',
        'accept-language': 'id-ID',
        'referer': 'https://cnvmp3.com/',
        'origin': 'https://cnvmp3.com',
        'sec-fetch-dest': 'empty',
        'sec-fetch-mode': 'cors',
        'sec-fetch-site': 'same-origin',
        'priority': 'u=4',
        'te': 'trailers',
      },
      data: data,
    };

    const api = await axios.request(config);
    return api.data;
  },

  // Fungsi untuk mengonversi video atau audio
  convert: async (url, format, quality) => {
    const { title } = await cnv.getData(url);
    const formatValue = formats[format];
    const qualityValue = format === 'audio' ? audioQuality[quality] : videoQuality[quality];

    const data = JSON.stringify({
      url,
      quality: qualityValue,
      title,
      formatValue,
    });

    const config = {
      method: 'POST',
      url: 'https://cnvmp3.com/download_video.php',
      headers: {
        'User-Agent': 'Mozilla/5.0 (Android 10; Mobile; rv:131.0) Gecko/131.0 Firefox/131.0',
        'Content-Type': 'application/json',
        'accept-language': 'id-ID',
        'referer': 'https://cnvmp3.com/',
        'origin': 'https://cnvmp3.com',
        'sec-fetch-dest': 'empty',
        'sec-fetch-mode': 'cors',
        'sec-fetch-site': 'same-origin',
        'priority': 'u=4',
        'te': 'trailers',
      },
      data: data,
    };

    const api = await axios.request(config);
    return api.data;
  },
};

// Contoh penggunaan
cnv
  .convert('https://youtube.com/watch?v=zawDTvoXT8k', 'audio', '128kbps')
  .then((data) => console.log(data))
  .catch((error) => console.error(error));

Penjelasan Kode

a. Format dan Kualitas

Kode mendukung dua format utama:

Audio: Dengan kualitas seperti 320kbps, 256kbps, 128kbps, dan 96kbps.

Video: Dengan resolusi seperti 144p, 360p, 480p, 720p, dan 1080p.

Format dan kualitas ditentukan melalui objek formats, audioQuality, dan videoQuality.

b. Mendapatkan Informasi Video

Fungsi getData digunakan untuk mengambil informasi dasar dari video, seperti judulnya. Fungsi ini mengirim permintaan POST ke API get_video_data.php.

c. Mengonversi Video atau Audio

Fungsi convert mengirim permintaan POST ke API download_video.php dengan parameter seperti URL, format, dan kualitas yang dipilih.


Contoh Penggunaan

Untuk mengonversi video ke audio dengan kualitas 128kbps, gunakan kode berikut:

cnv.convert('https://youtube.com/watch?v=zawDTvoXT8k', 'audio', '128kbps')
  .then(data => console.log(data))
  .catch(error => console.error(error));

Hasilnya akan berupa tautan unduhan untuk file yang diinginkan.


Kesimpulan

Dengan kode di atas, Anda dapat dengan mudah membuat aplikasi sederhana untuk mengonversi video ke audio atau mengunduh video dari YouTube. Anda juga dapat memodifikasi kode untuk menambahkan fitur lain, seperti menyimpan file hasil konversi langsung ke komputer Anda.

Semoga artikel ini membantu Anda memahami dasar-dasar pembuatan audio dan video converter menggunakan Node.js!

Author: Shannz