新規です
このアカウントは、notestockで公開設定になっていません。
このアカウントは、notestockで公開設定になっていません。
このアカウントは、notestockで公開設定になっていません。
このアカウントは、notestockで公開設定になっていません。
このアカウントは、notestockで公開設定になっていません。
おかしいこと言ってるかもしれないけど
ytdl-coreをつかってmp4を取得してそれをそのまま動画として流したい
でもファイルとして保存したくないってできる??
RE: https://misskey.io/notes/96vto905ce
このアカウントは、notestockで公開設定になっていません。
var router = require("express").Router();
const fs = require('fs');
const ytdl = require('ytdl-core');
const YouTube = require("youtube-sr").default;
const {exec}= require('child_process');
let vid=0;
let aud=0;
//ここまで変数の定義とか
router.get("/", (req, res) => {
res.status(500).send("");
});
router.get("/:videoId", async (req, res) => {
const info = await YouTube.getVideo(`https://youtube.com/watch?v=${req.params.videoId}`);
const videoid = req.params.videoId;
video_title=info.title;
video_views=info.views;
video_uploadat=info.uploadedAt;
video_description=info.description;
channel_id=info.channel.id;
channel_icon=info.channel.icon.url;
channel_name=info.channel.name;
channel_verified=info.channel.verified;
channel_subscribers=info.channel.subscribers;
console.log(__dirname +"/../")
//---------------------------------------------------------------
if( fs.existsSync(`videos/${req.params.videoId}.mp4`) ){
res.render('watch/index.ejs',{video_id: videoid, video_title: video_title, video_views: video_views, video_uploadat: video_uploadat, channel_id: channel_id, channel_icon: channel_icon, channel_name: channel_name, channel_verified: channel_verified, channel_subscribers: channel_subscribers}); //ファイルが存在していたらなにもせずにレスポンスを返す
}else{
const url = `https://www.youtube.com/watch?v=${videoid}`;
const video = ytdl(url, { filter: 'videoonly', quality: 'highestvideo' });
const audio = ytdl(url, { filter: 'audioonly', quality: 'highestaudio' });
//音声のダウンロード
video.pipe(fs.createWriteStream(`videos/${videoid}_noaudio.mp4`));
//動画のダウンロード
audio.pipe(fs.createWriteStream(`videos/${videoid}.mp3`));
video.on('end', () => {
vid=1;
if (vid==1 && aud==1){
convert(videoid);
res.render('watch/index.ejs',{video_id: videoid, video_title: video_title, video_views: video_views, video_uploadat: video_uploadat, channel_id: channel_id, channel_icon: channel_icon, channel_name: channel_name, channel_verified: channel_verified, channel_subscribers: channel_subscribers},{async: true});
}
});
audio.on('end', () => {
aud=1;
if (vid==1 && aud==1){
convert(videoid);
res.render('watch/index.ejs',{video_id: videoid, video_title: video_title, video_views: video_views, video_uploadat: video_uploadat, channel_id: channel_id, channel_icon: channel_icon, channel_name: channel_name, channel_verified: channel_verified, channel_subscribers: channel_subscribers},{async: true});
}
});
}
});
//--------音声と動画の結合作業----------
function convert(videoid){
console.log(videoid);
exec(`ffmpeg -i videos/${videoid}_noaudio.mp4 -i videos/${videoid}.mp3 -c copy videos/${videoid}.mp4`);
}
module.exports = router;
スパゲティコード…まっちゃてぃー(低スペックモデル
まっちゃてぃー(高スペックモデル
まっちゃてぃー(省電力モデル
あなたはどれがほしいですか
このアカウントは、notestockで公開設定になっていません。
@EchigawaX230IBM@mk.lei202.com わからないけど LIFEBOOK A552/EXってやつです
このアカウントは、notestockで公開設定になっていません。
このアカウントは、notestockで公開設定になっていません。
このアカウントは、notestockで公開設定になっていません。
このアカウントは、notestockで公開設定になっていません。
このアカウントは、notestockで公開設定になっていません。
このアカウントは、notestockで公開設定になっていません。
このアカウントは、notestockで公開設定になっていません。
このアカウントは、notestockで公開設定になっていません。
このアカウントは、notestockで公開設定になっていません。
このアカウントは、notestockで公開設定になっていません。