ytb2mp3 / youtube-mp3-downloader

Extract music from YouTube videos
MIT License
372 stars 102 forks source link

I can't lunch my code. how can i lunch my code now? #81

Closed antu-blip closed 2 years ago

antu-blip commented 3 years ago

Here is my source code: const fs = require("fs"); const login = require("facebook-chat-api"); var request = require('request'); var YoutubeMp3Downloader = require("youtube-mp3-downloader"); var answeredThreads = {}; var botStatusThreads = {}; var isSimsimi = false; var YD = new YoutubeMp3Downloader({ "ffmpegPath": "/path/to/ffmpeg",
"outputPath": "/path/to/mp3/folder",
"youtubeVideoQuality": "highestaudio",
"queueParallelism": 2,
"progressTimeout": 2000,
"allowWebm": false
}); const simsimi = require('simsimi')({ key: '5qT5q5wyg2yChoKrd6y59zZGJDd6NsUssREw-8pF', lang: "vn", atext_bad_prob_max: 0.0, // Chỉ số nói tục atext_bad_prob_min: 0.0, }); useSimsimi = function (threadID, text, api) { (async () => { try { if (blockGroupChat(threadID)) { return; }; if (blockUserChat(threadID)) { return; }; const response = await simsimi(text); api.sendMessage(response, threadID); } catch { return console.log("Pet không hiểu bạn nói. Xin lỗi nha :("); } })(); }

blockGroupChat = function (threadID) { var blockGroupIds = ["id gourup chat", "id gourup chat"]; if (blockGroupIds.find(x => x == threadID)) { console.error("block GroupId: " + threadID); return true; } return false; }

blockUserChat = function (threadID) { var blockUserIds = ["id user", "id user"]; if (blockUserIds.find(x => x == threadID)) { console.error("block ID: " + threadID); return true; } return false; }

login({ appState: JSON.parse(fs.readFileSync('appstate.json', 'utf8')) }, (err, api) => {

if (err) return console.error(err);
var yourId = api.getCurrentUserID(); 

api.listenMqtt(function callback(err, message) {
    //block icon: fix bug khi nhận đc icon

    //block all group : Chỗ này block all nhóm chát, k thíc thì comment lại
    if (message.isGroup) return console.log("block all group");
    //Simsimi

    if (message.body == "bot" || message.body == "Bot") {
        botStatusThreads[message.threadID] = true;
        isSimsimi = true;
        api.sendMessage("Đã bật chế độ nói chuyện với bot (gõ offbot để tắt). Bắt đầu nào!", message.threadID);
        return console.log("On sim");
    } else if (message.body == "offbot" || message.body == "Offbot") {
        isSimsimi = false;
        botStatusThreads[message.threadID] = false;
        api.sendMessage("Đã tắt chế độ nói chuyện với bot.", message.threadID);
    }

    if (isSimsimi && botStatusThreads.hasOwnProperty(message.threadID)) {
        var user = yourId + "_" + message.threadID;
        console.log(user);
        //#1. use simsimi
        // useSimsimi(message.threadID,message.body,api); 
        //#2. use Undertheseanlp
        useSimsimi(message.threadID, message.body,api);
        return console.log("Pet next");
    }

    if (message.body == "yt2mp4") {
        botStatusThreads[message.threadID] = true;
        api.sendMessage("nhập id nhạc youtube bạn muốn nghe", message.threadID);

        YD.download("message");

          YD.on("finished", function(err, data) {
              console.log(JSON.stringify(data));
             });

                YD.on("error", function(error) {
                   console.log(error);
                   });

                     YD.on("progress", function(progress) {
                     console.log(JSON.stringify(progress));
                   });
                     var msg = {
                     body: "Hey!",
                     attachment: fs.createReadStream(YD.file)
                     }
                     api.sendMessage(msg, message.threadID);     
    }
});

});

and when i lunch my code, the error code is: internal/fs/utils.js:620 throw new ERR_INVALID_ARG_TYPE(propName, ['string', 'Buffer', 'URL'], path); ^

TypeError [ERR_INVALID_ARG_TYPE]: The "path" argument must be of type string or an instance of Buffer or URL. Received undefined at Object.open (fs.js:443:10) at _openReadFs (internal/fs/streams.js:142:15) at new ReadStream (internal/fs/streams.js:119:5) at Object.createReadStream (fs.js:2003:10) at callback (C:\Users\ntung\Duy Manh\index.js:117:41) at C:\Users\ntung\Duy Manh\node_modules\facebook-chat-api\src\listenMqtt.js:194:26 at resolveAttachmentUrl (C:\Users\ntung\Duy Manh\node_modules\facebook-chat-api\src\listenMqtt.js:194:58) at parseDelta (C:\Users\ntung\Duy Manh\node_modules\facebook-chat-api\src\listenMqtt.js:213:7) at MqttClient. (C:\Users\ntung\Duy Manh\node_modules\facebook-chat-api\src\listenMqtt.js:136:9) at MqttClient.emit (events.js:315:20) at Arguments. (C:\Users\ntung\Duy Manh\node_modules\mqtt\lib\client.js:1150:27) at Object.MqttClient.options.customHandleAcks (C:\Users\ntung\Duy Manh\node_modules\mqtt\lib\client.js:152:150) at MqttClient._handlePublish (C:\Users\ntung\Duy Manh\node_modules\mqtt\lib\client.js:1143:15) at MqttClient._handlePacket (C:\Users\ntung\Duy Manh\node_modules\mqtt\lib\client.js:351:12) at work (C:\Users\ntung\Duy Manh\node_modules\mqtt\lib\client.js:283:12) at Writable.writable._write (C:\Users\ntung\Duy Manh\node_modules\mqtt\lib\client.js:294:5) { code: 'ERR_INVALID_ARG_TYPE' }

sorry my english is very bad because i'm vietnamese. how can i fix my code? thanks to watch my issues.

ytb2mp3 commented 3 years ago

You you please reformat your issue? The code is barely readable... Thanks