ITS REWRITE TIME

This commit is contained in:
Ben Kyd
2020-06-15 22:50:08 +00:00
parent 36491a761a
commit 32da4e4466
24 changed files with 161 additions and 177 deletions

4
.gitignore vendored
View File

@@ -1,4 +1,2 @@
node_modules
package-lock.json
*.mp4
*.mp3
node_modules/

View File

@@ -1,6 +1,6 @@
MIT License
Copyright (c) 2019 Benjamin Kyd
Copyright (c) 2020 Benjamin Kyd
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal

View File

@@ -1 +1 @@
require('./src/index').main();
import('./src/index').main();

65
legacy/.gitignore vendored
View File

@@ -1,61 +1,4 @@
# Logs
logs
*.log
npm-debug.log*
yarn-debug.log*
yarn-error.log*
# Runtime data
pids
*.pid
*.seed
*.pid.lock
# Directory for instrumented libs generated by jscoverage/JSCover
lib-cov
# Coverage directory used by tools like istanbul
coverage
# nyc test coverage
.nyc_output
# Grunt intermediate storage (http://gruntjs.com/creating-plugins#storing-task-files)
.grunt
# Bower dependency directory (https://bower.io/)
bower_components
# node-waf configuration
.lock-wscript
# Compiled binary addons (https://nodejs.org/api/addons.html)
build/Release
# Dependency directories
node_modules/
jspm_packages/
# TypeScript v1 declaration files
typings/
# Optional npm cache directory
.npm
# Optional eslint cache
.eslintcache
# Optional REPL history
.node_repl_history
# Output of 'npm pack'
*.tgz
# Yarn Integrity file
.yarn-integrity
# dotenv environment variables file
.env
# next.js build output
.next
node_modules
package-lock.json
*.mp4
*.mp3

View File

@@ -1,40 +1 @@
const fs = require('fs');
const ytdl = require('ytdl-core');
let videos = [];
if (!fs.existsSync('./videos.txt')) {
console.log('Could not find videos.txt, make sure it exists and has youtube links, each on new lines');
process.exit();
}
let text = fs.readFileSync('./videos.txt').toString();
text.split('\n').forEach((line) => {
videos.push(line.replace(/\r/, ''));
});
videos.forEach((url) => {
if (ytdl.validateURL(url)) {
ytdl.getInfo(url, (err, info) => {
if (err) {
console.log(`An error occured while downloading '${url}'`)
} else {
let title = info.title;
try {
let stream = ytdl(url, {quality: 'highest'}).pipe(fs.createWriteStream(`${title}.mp4`));
stream.on('finish', () => console.log(`Finish downloading ${title}`));
} catch (e) {
console.log(`An error occured while downloaing '${title}' retrying`)
try {
let stream = ytdl(url, {quality: 'highest'}).pipe(fs.createWriteStream(`${title}.mp4`));
stream.on('finish', () => console.log(`Finished downloading '${title}'`));
} catch (e) {
console.log(`Unable to download '${title}'`)
}
}
console.log(`Downloading '${title}'`);
}
})
} else console.log(`Video ${url} was not found`);
});
require('./src/index').main();

61
legacy/legacy/.gitignore vendored Normal file
View File

@@ -0,0 +1,61 @@
# Logs
logs
*.log
npm-debug.log*
yarn-debug.log*
yarn-error.log*
# Runtime data
pids
*.pid
*.seed
*.pid.lock
# Directory for instrumented libs generated by jscoverage/JSCover
lib-cov
# Coverage directory used by tools like istanbul
coverage
# nyc test coverage
.nyc_output
# Grunt intermediate storage (http://gruntjs.com/creating-plugins#storing-task-files)
.grunt
# Bower dependency directory (https://bower.io/)
bower_components
# node-waf configuration
.lock-wscript
# Compiled binary addons (https://nodejs.org/api/addons.html)
build/Release
# Dependency directories
node_modules/
jspm_packages/
# TypeScript v1 declaration files
typings/
# Optional npm cache directory
.npm
# Optional eslint cache
.eslintcache
# Optional REPL history
.node_repl_history
# Output of 'npm pack'
*.tgz
# Yarn Integrity file
.yarn-integrity
# dotenv environment variables file
.env
# next.js build output
.next

40
legacy/legacy/index.js Normal file
View File

@@ -0,0 +1,40 @@
const fs = require('fs');
const ytdl = require('ytdl-core');
let videos = [];
if (!fs.existsSync('./videos.txt')) {
console.log('Could not find videos.txt, make sure it exists and has youtube links, each on new lines');
process.exit();
}
let text = fs.readFileSync('./videos.txt').toString();
text.split('\n').forEach((line) => {
videos.push(line.replace(/\r/, ''));
});
videos.forEach((url) => {
if (ytdl.validateURL(url)) {
ytdl.getInfo(url, (err, info) => {
if (err) {
console.log(`An error occured while downloading '${url}'`)
} else {
let title = info.title;
try {
let stream = ytdl(url, {quality: 'highest'}).pipe(fs.createWriteStream(`${title}.mp4`));
stream.on('finish', () => console.log(`Finish downloading ${title}`));
} catch (e) {
console.log(`An error occured while downloaing '${title}' retrying`)
try {
let stream = ytdl(url, {quality: 'highest'}).pipe(fs.createWriteStream(`${title}.mp4`));
stream.on('finish', () => console.log(`Finished downloading '${title}'`));
} catch (e) {
console.log(`Unable to download '${title}'`)
}
}
console.log(`Downloading '${title}'`);
}
})
} else console.log(`Video ${url} was not found`);
});

View File

@@ -0,0 +1,15 @@
{
"name": "youtube-dowloader",
"version": "1.0.0",
"description": "",
"main": "index.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"author": "Ben (plane000)",
"license": "MIT",
"dependencies": {
"fs": "0.0.1-security",
"ytdl-core": "^0.21.1"
}
}

View File

@@ -1,47 +0,0 @@
{
"name": "youtube-dowloader",
"version": "1.0.0",
"lockfileVersion": 1,
"requires": true,
"dependencies": {
"fs": {
"version": "0.0.1-security",
"resolved": "https://registry.npmjs.org/fs/-/fs-0.0.1-security.tgz",
"integrity": "sha1-invTcYa23d84E/I4WLV+yq9eQdQ="
},
"html-entities": {
"version": "1.2.1",
"resolved": "https://registry.npmjs.org/html-entities/-/html-entities-1.2.1.tgz",
"integrity": "sha1-DfKTUfByEWNRXfueVUPl9u7VFi8="
},
"m3u8stream": {
"version": "0.3.0",
"resolved": "https://registry.npmjs.org/m3u8stream/-/m3u8stream-0.3.0.tgz",
"integrity": "sha512-0tvjXDIa6BolPEGo9zioQiPqfQhjopZXN3L7vZH/rZQCOLd4rPXNZc1UBMdW3TRpjNBoD0+F1X41/f0iY23rlQ==",
"requires": {
"miniget": "1.2.0"
}
},
"miniget": {
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/miniget/-/miniget-1.2.0.tgz",
"integrity": "sha1-ADY3Oia71S2+aUX85sjAOR6eEkE="
},
"sax": {
"version": "1.2.4",
"resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz",
"integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw=="
},
"ytdl-core": {
"version": "0.21.1",
"resolved": "https://registry.npmjs.org/ytdl-core/-/ytdl-core-0.21.1.tgz",
"integrity": "sha512-K6ysXuHW0X3MgeLpO4IHvHp5gdF2DDrgFPP7kQODBSpeaq4+/y8lvWy6ZpxtJdQGE0+GUaBZ2H1/kYcP327UdQ==",
"requires": {
"html-entities": "1.2.1",
"m3u8stream": "0.3.0",
"miniget": "1.2.0",
"sax": "1.2.4"
}
}
}
}

View File

@@ -1,15 +1,19 @@
{
"name": "youtube-dowloader",
"name": "youtube-downloader",
"version": "1.0.0",
"description": "",
"main": "index.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
"main": "main.js",
"repository": {
"type": "git",
"url": "git+https://github.com/plane000/youtube-downloader.git"
},
"author": "Ben (plane000)",
"license": "MIT",
"devDependencies": {},
"dependencies": {
"fs": "0.0.1-security",
"ytdl-core": "^0.21.1"
"express": "^4.16.4",
"moment": "^2.23.0",
"socket.io": "^2.2.0",
"ytdl-core": "^0.28.3"
}
}

View File

Before

Width:  |  Height:  |  Size: 29 KiB

After

Width:  |  Height:  |  Size: 29 KiB

View File

Before

Width:  |  Height:  |  Size: 29 KiB

After

Width:  |  Height:  |  Size: 29 KiB

13
legacy/src/index.js Normal file
View File

@@ -0,0 +1,13 @@
const server = require('./server');
let config = {
serverPort: 8080,
downloadLocation: './'
};
module.exports.config = config;
module.exports.main = async () => {
await server.init();
await server.listen();
}

View File

@@ -1,19 +1,22 @@
{
"name": "youtube-downloader",
"version": "1.0.0",
"description": "",
"main": "main.js",
"description": "Simple to use youtube downloader, simply run the index javascript file with node and then go to localhost on your browser, by default the video will download to this folder but can be changed in src/index.js",
"main": "index.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"repository": {
"type": "git",
"url": "git+https://github.com/plane000/youtube-downloader.git"
},
"author": "Ben (plane000)",
"author": "Ben (benjaminkyd@gmail.com)",
"license": "MIT",
"devDependencies": {},
"bugs": {
"url": "https://github.com/plane000/youtube-downloader/issues"
},
"homepage": "https://github.com/plane000/youtube-downloader#readme",
"dependencies": {
"express": "^4.16.4",
"moment": "^2.23.0",
"socket.io": "^2.2.0",
"ytdl-core": "^0.28.3"
"moment": "^2.26.0"
}
}

View File

@@ -1,13 +1,6 @@
const server = require('./server');
let config = {
serverPort: 8080,
downloadLocation: './'
};
module.exports.config = config;
module.exports.main = async function()
{
module.exports.main = async () => {
await server.init();
await server.listen();
}