Skip to content

Instantly share code, notes, and snippets.

@CSFelix
Created December 3, 2020 14:47
Show Gist options
  • Save CSFelix/c6063d0ce7f07b898126f7f354537aa1 to your computer and use it in GitHub Desktop.
Save CSFelix/c6063d0ce7f07b898126f7f354537aa1 to your computer and use it in GitHub Desktop.

Revisions

  1. CSFelix created this gist Dec 3, 2020.
    50 changes: 50 additions & 0 deletions how-to-do-web-tube-me-server-index.js
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,50 @@
    const express = require('express');
    const cors = require('cors');
    const ytdl = require('ytdl-core');

    const app = express();

    app.use(cors());

    app.listen(4000, () => {
    console.log('Every thing okay on the port 4000!');
    });

    app.get('/downloadmp3', async (req, res, next) => {
    try {
    var url = req.query.url;
    let title = 'audio';

    await ytdl.getBasicInfo(url, {
    format: 'mp4'
    }, (err, info) => {
    title = info.player_response.videoDetails.title;
    });

    res.header('Content-Disposition', `attachment; filename="${title}.mp3"`);
    ytdl(url, {
    format: 'mp3',
    filter: 'audioonly',
    }).pipe(res);
    }
    catch (err) { console.error(err); }
    });

    app.get('/downloadmp4', async (req, res, next) => {
    try {
    let URL = req.query.url;
    let title = 'video';

    await ytdl.getBasicInfo(URL, {
    format: 'mp4'
    }, (err, info) => {
    title = info.player_response.videoDetails.title;
    });

    res.header('Content-Disposition', `attachment; filename="${title}.mp4"`);
    ytdl(URL, {
    format: 'mp4',
    }).pipe(res);
    }
    catch (err) { console.error(err); }
    });