fix: add some better error handling

This commit is contained in:
LuanRT
2021-10-15 00:04:39 -03:00
parent de7d52a62c
commit 1a68875aad
2 changed files with 10 additions and 2 deletions

View File

@@ -1,3 +1,5 @@
'use strict';
const fs = require('fs');
const Innertube = require('..');
@@ -10,7 +12,8 @@ async function start() {
const video = await youtube.getDetails(search.videos[0].id);
console.info('Video details:', video);
if (video.error) return;
if (youtube.logged_in) {
const myNotifications = await youtube.getNotifications();
console.info('My notifications:', myNotifications);
@@ -53,7 +56,7 @@ async function start() {
type: 'videoandaudio' // can be “video”, “audio” and “videoandaudio”
});
stream.pipe(fs.createWriteStream(`./${search.videos[0].title}.mp4`));
stream.pipe(fs.createWriteStream(`./${search.videos[0].id}.mp4`));
stream.on('start', () => {
console.info('[DOWNLOADER]', 'Starting download now!');

View File

@@ -91,6 +91,7 @@ class Innertube extends EventEmitter {
}
async search(query, options = { period: 'any', order: 'relevance', duration: 'any' }) {
if (!query) throw new Error('No query was provided');
if (!this.initialized) throw new Error('Missing Innertube data.');
const yt_response = await Axios.post(`${Constants.urls.YT_BASE_URL}/youtubei/v1/search${this.logged_in && this.cookie.length < 1 ? '' : `?key=${this.key}`}`, JSON.stringify({ context: this.context, params: Constants.filters(options.period + ',' + options.duration + ',' + options.order), query }), Constants.innertube_request_opts({ session: this })).catch((error) => error);
@@ -135,6 +136,8 @@ class Innertube extends EventEmitter {
}
async getDetails(id) {
if (!id) return { error: 'Video id missing' };
const data = await this.requestVideoInfo(id, false);
const video_data = Constants.formatVideoData(data, this, false);
@@ -192,6 +195,8 @@ class Innertube extends EventEmitter {
}
download(id, options = {}) {
if (!id) throw new Error('Video id missing');
options.quality = options.quality || '360p';
options.type = options.type || 'videoandaudio';
options.format = options.format || 'mp4';