前提・実現したいこと
Discord.jsで検索したYouTubeの動画を再生する機能を作っています。
上記の機能を作成中に以下のエラーメッセージが発生しました。
発生している問題・エラーメッセージ
}); 12:08 AM 12:08 AM 12:08 AM SyntaxError: Unexpected end of input 12:08 AM at Module._compile (internal/modules/cjs/loader.js:703:23) 12:08 AM at Object.Module._extensions..js (internal/modules/cjs/loader.js:770:10) 12:08 AM at Module.load (internal/modules/cjs/loader.js:628:32) 12:08 AM at Function.Module._load (internal/modules/cjs/loader.js:555:12) 12:08 AM at Function.Module.runMain (internal/modules/cjs/loader.js:826:10) 12:08 AM at internal/main/run_main_module.js:17:11 12:08 AM a few seconds ago Jump To/app/server.js:313 12:09 AM }); 12:09 AM 12:09 AM 12:09 AM SyntaxError: Unexpected end of input 12:09 AM at Module._compile (internal/modules/cjs/loader.js:703:23) 12:09 AM at Object.Module._extensions..js (internal/modules/cjs/loader.js:770:10) 12:09 AM at Module.load (internal/modules/cjs/loader.js:628:32) 12:09 AM at Function.Module._load (internal/modules/cjs/loader.js:555:12) 12:09 AM at Function.Module.runMain (internal/modules/cjs/loader.js:826:10) 12:09 AM at internal/main/run_main_module.js:17:11 12:09 AM a few seconds ago Jump To/app/server.js:313 12:09 AM }); 12:09 AM 12:09 AM 12:09 AM SyntaxError: Unexpected end of input 12:09 AM at Module._compile (internal/modules/cjs/loader.js:703:23) 12:09 AM at Object.Module._extensions..js (internal/modules/cjs/loader.js:770:10) 12:09 AM at Module.load (internal/modules/cjs/loader.js:628:32) 12:09 AM at Function.Module._load (internal/modules/cjs/loader.js:555:12) 12:09 AM at Function.Module.runMain (internal/modules/cjs/loader.js:826:10) 12:09 AM
Javascript
1 2const ytdl = require('ytdl-core') 3const yts = require('yt-search') 4client.on('message',async message => { 5 if(message.content.startsWith('b!yt')&&message.content.match("https://")){ 6 // メッセージから動画URLだけを取り出す 7 var url = message.content.replace('b!yt','') 8 // まず動画が見つからなければ処理を止める 9 if (!ytdl.validateURL(url)) return message.channel.send('動画が存在しません。URLをお確かめください。') 10 // コマンドを実行したメンバーがいるボイスチャンネルを取得 11 const channel = message.member.voice.channel 12 // コマンドを実行したメンバーがボイスチャンネルに入ってなければ処理を止める 13 if (!channel) return message.reply('ボイスチャンネルに参加してください。\n') 14 // チャンネルに参加 15 const connection = await channel.join() 16 // 動画の音源を取得 17 const stream = ytdl(ytdl.getURLVideoID(url), { filter: 'audioonly',quality:'highestaudio' }) 18 // 再生 19 dispatcher = connection.play(stream) 20 // 再生が終了したら抜ける 21 dispatcher.once('finish', () => {channel.leave()}) 22 }else{ 23 var douga = message.content.replace('b!yt','') 24 //Youtubeから検索する 25 yts( douga, async function ( err, r ) {//検索 26 //videosに検索結果が配列で返される 27 var videos = r.videos 28 //videoの最初のurlを取得する(動画ごとにデータが入った連想配列がある) 29 const url =videos[0].url 30 //この行は多分要らないが念の為 31 if (!ytdl.validateURL(url)) return message.reply('検索結果に合う動画が見つかりませんでした。スペルミスが無いか 確認するか、検索ワードを変更してみてください。') 32 // コマンドを実行したメンバーがいるボイスチャンネルを取得 33 const channel = message.member.voice.channel 34 // コマンドを実行したメンバーがボイスチャンネルに入ってなければ処理を止める 35 if (!channel) return message.reply('ボイスチャンネルに参加してください。') 36 // チャンネルに参加 37 const connection = await channel.join() 38 // 動画の音源を取得 39 const stream = ytdl(ytdl.getURLVideoID(url), { filter: 'audioonly',quality:'highestaudio' }) 40 // 再生 41 dispatcher = connection.play(stream) 42 message.channel.send({embed:{ 43 title:"再生が開始されました。", 44 description:'曲の情報:\n'+videos[0].title+'\nURL:'+videos[0].url+'\nチャンネル'+videos[0].author.name+'\n視聴回数'+videos[0].views+'回', 45 color:0x36393f, 46 timestamp:new Date() 47 48 }}) 49 // 再生が終了したら抜ける 50 dispatcher.once('finish', () => { 51 channel.leave() 52 }); 53 54
試したこと
かっこの位置を増やしたりした
初心者なので修正したコード載せてもらえると嬉しいです
補足情報(FW/ツールのバージョンなど)
3/18現在の最新のバージョン
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。