ronram5126 / steamworkshopdownloader Goto Github PK
View Code? Open in Web Editor NEWSimple steam workshop downlaoder
License: MIT License
Simple steam workshop downlaoder
License: MIT License
I got this error while i was trying to download a rimworld collection.
I followed all the steps writen in the readme.
Idea for enchancment: Add http://steamworkshopdownloader.io as fallback download source when http://steamworkshop.download can't download mod.
I'm trying to download a mod collection for Rimworld and most mods are outdated when the mods themselves are updated.
I think some files aren't downloaded but i'm not sure.
Any help?
I get this error when I run npm start.
The urls examples look like file url not collection url, I tried both and none worked. :(
> node index.js
/Users/craigyu/Downloads/steamWorkshopCrawler/steamworkshopdownloader-master/node_modules/jsdom/lib/jsdom/living/helpers/dates-and-times.js:235
} catch {
^
SyntaxError: Unexpected token {
at createScript (vm.js:80:10)
at Object.runInThisContext (vm.js:139:10)
at Module._compile (module.js:616:28)
at Object.Module._extensions..js (module.js:663:10)
at Module.load (module.js:565:32)
at tryModuleLoad (module.js:505:12)
at Function.Module._load (module.js:497:3)
at Module.require (module.js:596:17)
at require (internal/module.js:11:18)
at Object.<anonymous> (/Users/craigyu/Downloads/steamWorkshopCrawler/steamworkshopdownloader-master/node_modules/jsdom/lib/jsdom/living/helpers/form-controls.js:18:5)
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! [email protected] start: `node index.js`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the [email protected] start script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.```
Hello! I am downloading this collection: https://steamcommunity.com/sharedfiles/filedetails/?id=2040151856
I had an error about folder naming which i commented in #4 , but i temporaly change the folder name to ${downloadDir/ collection ${count}
so the name of the folder was collection 0
and it solved that problem.
However, now i have other errors: i can't download some itens in the collection... it gives an error:
downloading Metro Stations: More Platforms & Special Tracks [For Sunset Harbor update]
0. Metro 1 Platform Curved 1 For Sunset Harbor
[
Error: connect ECONNREFUSED 127.0.0.1:80
at TCPConnectWrap.afterConnect [as oncomplete] (net.js:1141:16) {
errno: -4078,
code: 'ECONNREFUSED',
syscall: 'connect',
address: '127.0.0.1',
port: 80
}
]
a few worked, and a few did not worked, giving this error.
I opended cmd with administrator rights
here is the full output:
> [email protected] start C:\Users\Alan\Downloads\steamworkshopdownloader
> node index.js
downloading Metro Stations: More Platforms & Special Tracks [For Sunset Harbor update]
0. Metro 1 Platform Curved 1 For Sunset Harbor
[
Error: connect ECONNREFUSED 127.0.0.1:80
at TCPConnectWrap.afterConnect [as oncomplete] (net.js:1141:16) {
errno: -4078,
code: 'ECONNREFUSED',
syscall: 'connect',
address: '127.0.0.1',
port: 80
}
]
Metro 1 Platform Curved 1 For Sunset Harbor
Metro Stations: More Platforms & Special Tracks [For Sunset Harbor update]
[
Error: connect ECONNREFUSED 127.0.0.1:80
at TCPConnectWrap.afterConnect [as oncomplete] (net.js:1141:16) {
errno: -4078,
code: 'ECONNREFUSED',
syscall: 'connect',
address: '127.0.0.1',
port: 80
}
]
(node:5304) UnhandledPromiseRejectionWarning: Error: connect ECONNREFUSED 127.0.0.1:80
at TCPConnectWrap.afterConnect [as oncomplete] (net.js:1141:16)
(node:5304) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). To terminate the node process on unhandled promise rejection, use the CLI flag `--unhandled-rejections=strict` (see https://nodejs.org/api/cli.html#cli_unhandled_rejections_mode). (rejection id: 1)
(node:5304) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.
1. Metro 1 Platform Curved 2 For Sunset Harbor
2. Metro 1 Platform Deeper 1 For Sunset Harbor
[
Error: connect ECONNREFUSED 127.0.0.1:80
at TCPConnectWrap.afterConnect [as oncomplete] (net.js:1141:16) {
errno: -4078,
code: 'ECONNREFUSED',
syscall: 'connect',
address: '127.0.0.1',
port: 80
}
]
Metro 1 Platform Deeper 1 For Sunset Harbor
Metro Stations: More Platforms & Special Tracks [For Sunset Harbor update]
[
Error: connect ECONNREFUSED 127.0.0.1:80
at TCPConnectWrap.afterConnect [as oncomplete] (net.js:1141:16) {
errno: -4078,
code: 'ECONNREFUSED',
syscall: 'connect',
address: '127.0.0.1',
port: 80
}
]
(node:5304) UnhandledPromiseRejectionWarning: Error: connect ECONNREFUSED 127.0.0.1:80
at TCPConnectWrap.afterConnect [as oncomplete] (net.js:1141:16)
(node:5304) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). To terminate the node process on unhandled promise rejection, use the CLI flag `--unhandled-rejections=strict` (see https://nodejs.org/api/cli.html#cli_unhandled_rejections_mode). (rejection id: 2)
3. Metro 1 Platform Deeper 2 For Sunset Harbor
[
Error: connect ECONNREFUSED 127.0.0.1:80
at TCPConnectWrap.afterConnect [as oncomplete] (net.js:1141:16) {
errno: -4078,
code: 'ECONNREFUSED',
syscall: 'connect',
address: '127.0.0.1',
port: 80
}
]
Metro 1 Platform Deeper 2 For Sunset Harbor
Metro Stations: More Platforms & Special Tracks [For Sunset Harbor update]
[
Error: connect ECONNREFUSED 127.0.0.1:80
at TCPConnectWrap.afterConnect [as oncomplete] (net.js:1141:16) {
errno: -4078,
code: 'ECONNREFUSED',
syscall: 'connect',
address: '127.0.0.1',
port: 80
}
]
(node:5304) UnhandledPromiseRejectionWarning: Error: connect ECONNREFUSED 127.0.0.1:80
at TCPConnectWrap.afterConnect [as oncomplete] (net.js:1141:16)
(node:5304) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). To terminate the node process on unhandled promise rejection, use the CLI flag `--unhandled-rejections=strict` (see https://nodejs.org/api/cli.html#cli_unhandled_rejections_mode). (rejection id: 3)
4. Metro 1 Platform Diagonal 1 For Sunset Harbor
5. Metro 1 Platform Diagonal 2 For Sunset Harbor
6. Metro 1 Platform Rotated For Sunset Harbor
7. Metro 2 Platforms Cross For Sunset Harbor
8. Metro 2 Platforms Cross X (45 Degree) For Sunset Harbor
9. Metro 2 Platforms Cross X (Diagonal) For Sunset Harbor
10. Metro 2 Platforms Parallel 1 For Sunset Harbor
11. Metro 2 Platforms Parallel 2 For Sunset Harbor
12. Metro 3 Platforms Cross For Sunset Harbor
13. Metro 3 Platforms Parallel 1 For Sunset Harbor
[
Error: connect ECONNREFUSED 127.0.0.1:80
at TCPConnectWrap.afterConnect [as oncomplete] (net.js:1141:16) {
errno: -4078,
code: 'ECONNREFUSED',
syscall: 'connect',
address: '127.0.0.1',
port: 80
}
]
Metro 3 Platforms Parallel 1 For Sunset Harbor
Metro Stations: More Platforms & Special Tracks [For Sunset Harbor update]
[
Error: connect ECONNREFUSED 127.0.0.1:80
at TCPConnectWrap.afterConnect [as oncomplete] (net.js:1141:16) {
errno: -4078,
code: 'ECONNREFUSED',
syscall: 'connect',
address: '127.0.0.1',
port: 80
}
]
(node:5304) UnhandledPromiseRejectionWarning: Error: connect ECONNREFUSED 127.0.0.1:80
at TCPConnectWrap.afterConnect [as oncomplete] (net.js:1141:16)
(node:5304) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). To terminate the node process on unhandled promise rejection, use the CLI flag `--unhandled-rejections=strict` (see https://nodejs.org/api/cli.html#cli_unhandled_rejections_mode). (rejection id: 4)
14. Metro 3 Platforms Parallel 2 For Sunset Harbor
15. Metro 3 Platforms Star For Sunset Harbor
16. Metro 4 Platforms Cross For Sunset Harbor
[
Error: connect ECONNREFUSED 127.0.0.1:80
at TCPConnectWrap.afterConnect [as oncomplete] (net.js:1141:16) {
errno: -4078,
code: 'ECONNREFUSED',
syscall: 'connect',
address: '127.0.0.1',
port: 80
}
]
Metro 4 Platforms Cross For Sunset Harbor
Metro Stations: More Platforms & Special Tracks [For Sunset Harbor update]
[
Error: connect ECONNREFUSED 127.0.0.1:80
at TCPConnectWrap.afterConnect [as oncomplete] (net.js:1141:16) {
errno: -4078,
code: 'ECONNREFUSED',
syscall: 'connect',
address: '127.0.0.1',
port: 80
}
]
(node:5304) UnhandledPromiseRejectionWarning: Error: connect ECONNREFUSED 127.0.0.1:80
at TCPConnectWrap.afterConnect [as oncomplete] (net.js:1141:16)
(node:5304) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). To terminate the node process on unhandled promise rejection, use the CLI flag `--unhandled-rejections=strict` (see https://nodejs.org/api/cli.html#cli_unhandled_rejections_mode). (rejection id: 5)
17. Metro 5 Platforms Cross For Sunset Harbor
Metro 5 Platforms Cross For Sunset Harbor
Metro Stations: More Platforms & Special Tracks [For Sunset Harbor update]
Error: Request failed with status code 504
at createError (C:\Users\Alan\Downloads\steamworkshopdownloader\node_modules\axios\lib\core\createError.js:16:15)
at settle (C:\Users\Alan\Downloads\steamworkshopdownloader\node_modules\axios\lib\core\settle.js:17:12)
at IncomingMessage.handleStreamEnd (C:\Users\Alan\Downloads\steamworkshopdownloader\node_modules\axios\lib\adapters\http.js:236:11)
at IncomingMessage.emit (events.js:327:22)
at endReadableNT (_stream_readable.js:1201:12)
at processTicksAndRejections (internal/process/task_queues.js:84:21) {
config: {
url: 'http://steamworkshop.download/online/steamonline.php',
method: 'post',
data: 'item=2040866947&app=255710',
headers: {
Accept: 'application/json, text/plain, */*',
'Content-Type': 'application/x-www-form-urlencoded',
'User-Agent': 'axios/0.19.2',
'Content-Length': 26
},
transformRequest: [ [Function: transformRequest] ],
transformResponse: [ [Function: transformResponse] ],
timeout: 0,
adapter: [Function: httpAdapter],
xsrfCookieName: 'XSRF-TOKEN',
xsrfHeaderName: 'X-XSRF-TOKEN',
maxContentLength: -1,
validateStatus: [Function: validateStatus]
},
request: <ref *1> ClientRequest {
_events: [Object: null prototype] {
socket: [Function (anonymous)],
abort: [Function (anonymous)],
aborted: [Function (anonymous)],
error: [Function (anonymous)],
timeout: [Function (anonymous)],
prefinish: [Function: requestOnPrefinish]
},
_eventsCount: 6,
_maxListeners: undefined,
outputData: [],
outputSize: 0,
writable: true,
_last: true,
chunkedEncoding: false,
shouldKeepAlive: false,
useChunkedEncodingByDefault: true,
sendDate: false,
_removedConnection: false,
_removedContLen: false,
_removedTE: false,
_contentLength: null,
_hasBody: true,
_trailer: '',
finished: true,
_headerSent: true,
socket: Socket {
connecting: false,
_hadError: false,
_parent: null,
_host: 'steamworkshop.download',
_readableState: [ReadableState],
readable: true,
_events: [Object: null prototype],
_eventsCount: 7,
_maxListeners: undefined,
_writableState: [WritableState],
writable: false,
allowHalfOpen: false,
_sockname: null,
_pendingData: null,
_pendingEncoding: '',
server: null,
_server: null,
parser: null,
_httpMessage: [Circular *1],
[Symbol(asyncId)]: 10870,
[Symbol(kHandle)]: [TCP],
[Symbol(kSetNoDelay)]: false,
[Symbol(lastWriteQueueSize)]: 0,
[Symbol(timeout)]: null,
[Symbol(kBuffer)]: null,
[Symbol(kBufferCb)]: null,
[Symbol(kBufferGen)]: null,
[Symbol(kCapture)]: false,
[Symbol(kBytesRead)]: 0,
[Symbol(kBytesWritten)]: 0
},
_header: 'POST /online/steamonline.php HTTP/1.1\r\n' +
'Accept: application/json, text/plain, */*\r\n' +
'Content-Type: application/x-www-form-urlencoded\r\n' +
'User-Agent: axios/0.19.2\r\n' +
'Content-Length: 26\r\n' +
'Host: steamworkshop.download\r\n' +
'Connection: close\r\n' +
'\r\n',
_onPendingData: [Function: noopPendingOutput],
agent: Agent {
_events: [Object: null prototype],
_eventsCount: 2,
_maxListeners: undefined,
defaultPort: 80,
protocol: 'http:',
options: [Object],
requests: {},
sockets: [Object],
freeSockets: {},
keepAliveMsecs: 1000,
keepAlive: false,
maxSockets: Infinity,
maxFreeSockets: 256,
[Symbol(kCapture)]: false
},
socketPath: undefined,
method: 'POST',
maxHeaderSize: undefined,
insecureHTTPParser: undefined,
path: '/online/steamonline.php',
_ended: true,
res: IncomingMessage {
_readableState: [ReadableState],
readable: false,
_events: [Object: null prototype],
_eventsCount: 3,
_maxListeners: undefined,
socket: [Socket],
httpVersionMajor: 1,
httpVersionMinor: 1,
httpVersion: '1.1',
complete: true,
headers: [Object],
rawHeaders: [Array],
trailers: {},
rawTrailers: [],
aborted: false,
upgrade: false,
url: '',
method: null,
statusCode: 504,
statusMessage: 'Gateway Time-out',
client: [Socket],
_consuming: false,
_dumped: false,
req: [Circular *1],
responseUrl: 'http://steamworkshop.download/online/steamonline.php',
redirects: [],
[Symbol(kCapture)]: false
},
aborted: false,
timeoutCb: null,
upgradeOrConnect: false,
parser: null,
maxHeadersCount: null,
reusedSocket: false,
_redirectable: Writable {
_writableState: [WritableState],
writable: true,
_events: [Object: null prototype],
_eventsCount: 2,
_maxListeners: undefined,
_options: [Object],
_redirectCount: 0,
_redirects: [],
_requestBodyLength: 26,
_requestBodyBuffers: [],
_onNativeResponse: [Function (anonymous)],
_currentRequest: [Circular *1],
_currentUrl: 'http://steamworkshop.download/online/steamonline.php',
[Symbol(kCapture)]: false
},
[Symbol(kCapture)]: false,
[Symbol(kNeedDrain)]: false,
[Symbol(corked)]: 0,
[Symbol(kOutHeaders)]: [Object: null prototype] {
accept: [Array],
'content-type': [Array],
'user-agent': [Array],
'content-length': [Array],
host: [Array]
}
},
response: {
status: 504,
statusText: 'Gateway Time-out',
headers: {
server: 'nginx/1.16.0',
date: 'Mon, 20 Apr 2020 01:48:28 GMT',
'content-type': 'text/html',
'transfer-encoding': 'chunked',
connection: 'close'
},
config: {
url: 'http://steamworkshop.download/online/steamonline.php',
method: 'post',
data: 'item=2040866947&app=255710',
headers: [Object],
transformRequest: [Array],
transformResponse: [Array],
timeout: 0,
adapter: [Function: httpAdapter],
xsrfCookieName: 'XSRF-TOKEN',
xsrfHeaderName: 'X-XSRF-TOKEN',
maxContentLength: -1,
validateStatus: [Function: validateStatus]
},
request: <ref *1> ClientRequest {
_events: [Object: null prototype],
_eventsCount: 6,
_maxListeners: undefined,
outputData: [],
outputSize: 0,
writable: true,
_last: true,
chunkedEncoding: false,
shouldKeepAlive: false,
useChunkedEncodingByDefault: true,
sendDate: false,
_removedConnection: false,
_removedContLen: false,
_removedTE: false,
_contentLength: null,
_hasBody: true,
_trailer: '',
finished: true,
_headerSent: true,
socket: [Socket],
_header: 'POST /online/steamonline.php HTTP/1.1\r\n' +
'Accept: application/json, text/plain, */*\r\n' +
'Content-Type: application/x-www-form-urlencoded\r\n' +
'User-Agent: axios/0.19.2\r\n' +
'Content-Length: 26\r\n' +
'Host: steamworkshop.download\r\n' +
'Connection: close\r\n' +
'\r\n',
_onPendingData: [Function: noopPendingOutput],
agent: [Agent],
socketPath: undefined,
method: 'POST',
maxHeaderSize: undefined,
insecureHTTPParser: undefined,
path: '/online/steamonline.php',
_ended: true,
res: [IncomingMessage],
aborted: false,
timeoutCb: null,
upgradeOrConnect: false,
parser: null,
maxHeadersCount: null,
reusedSocket: false,
_redirectable: [Writable],
[Symbol(kCapture)]: false,
[Symbol(kNeedDrain)]: false,
[Symbol(corked)]: 0,
[Symbol(kOutHeaders)]: [Object: null prototype]
},
data: '<html>\r\n' +
'<head><title>504 Gateway Time-out</title></head>\r\n' +
'<body>\r\n' +
'<center><h1>504 Gateway Time-out</h1></center>\r\n' +
'<hr><center>nginx/1.16.0</center>\r\n' +
'</body>\r\n' +
'</html>\r\n'
},
isAxiosError: true,
toJSON: [Function (anonymous)]
}
can you look at this in your free time? thanks!
Hi,
When using your program for downloading cities skylines collections, it downloads ".civmod" files, however, it should be in zip files. Do you know why?
Thanks.
Hello!!
First i wanna say thank you for doing this code, it will save me tons of time!!!
However i met this issue:
The collection has a [
in the name (link: Metro Stations: More Platforms & Special Tracks [For Sunset Harbor update] ), so, because it uses the name of the collection to create the folder, it gives an error, and it is unable to continue
> [email protected] start C:\Users\Nipodemos\Downloads\steamworkshopdownloader
> node index.js
https://steamcommunity.com/sharedfiles/filedetails/?id=2040151856
Error: ENOENT: no such file or directory, mkdir './downloads/Metro Stations: More Platforms & Special Tracks [For Sunset Harbor update]'
at Object.mkdirSync (fs.js:934:3)
at C:\Users\Nipodemos\Downloads\steamworkshopdownloader\index.js:40:16
at processTicksAndRejections (internal/process/task_queues.js:97:5)
at async download (C:\Users\Nipodemos\Downloads\steamworkshopdownloader\index.js:28:5) {
errno: -4058,
syscall: 'mkdir',
code: 'ENOENT',
path: './downloads/Metro Stations: More Platforms & Special Tracks [For Sunset Harbor update]'
}
I know a little bit of programming, but i don't know to program in node.
Could you see this when you have free time? it would be awesome!
Hi,
First of all thanks for this piece of work !
I'm encountering some difficulties to download mods from the workshop for Tabletop Simulator.
Here is all I made :
C:\Users\Jerome\Desktop\steamworkshopdownloader-master\steamworkshopdownloader-master>npm install
npm WARN [email protected] No repository field.
added 103 packages from 138 contributors and audited 143 packages in 2.33s
found 1 low severity vulnerability
runnpm audit fix
to fix them, ornpm audit
for details
C:\Users\Jerome\Desktop\steamworkshopdownloader-master\steamworkshopdownloader-master>npm audit fix
npm WARN [email protected] No repository field.
up to date in 0.305s
fixed 0 of 1 vulnerability in 143 scanned packages
1 vulnerability required manual review and could not be updated
C:\Users\Jerome\Desktop\steamworkshopdownloader-master\steamworkshopdownloader-master>npm install
npm WARN [email protected] No repository field.
added 103 packages from 138 contributors and audited 143 packages in 1.448s
found 1 low severity vulnerability
runnpm audit fix
to fix them, ornpm audit
for details
C:\Users\Jerome\Desktop\steamworkshopdownloader-master\steamworkshopdownloader-master>npm start
[email protected] start C:\Users\Jerome\Desktop\steamworkshopdownloader-master\steamworkshopdownloader-master
node index.js
downloading The Settlers of Catan + Expansions (Scripted)
C:\Users\Jerome\Desktop\steamworkshopdownloader-master\steamworkshopdownloader-master>npm start
[email protected] start C:\Users\Jerome\Desktop\steamworkshopdownloader-master\steamworkshopdownloader-master
node index.js
downloading The Settlers of Catan + Expansions (Scripted)
C:\Users\Jerome\Desktop\steamworkshopdownloader-master\steamworkshopdownloader-master>npm audit
=== npm audit security report ===
Manual Review
Some vulnerabilities require your attention to resolve
Visit https://go.npm.me/audit-guide for additional guidance
Low Prototype Pollution
Package minimist
Patched in >=0.2.1 <1.0.0 || >=1.2.3
Dependency of download-file
Path download-file > mkdirp > minimist
More info https://npmjs.com/advisories/1179
found 1 low severity vulnerability in 143 scanned packages
1 vulnerability requires manual review. See the full report for details.
I don't have a Download folder after that and can't find where it would be if it worked.
Do you know what could cause this ?
The mod I'm trying to get is this one : https://steamcommunity.com/sharedfiles/filedetails/?id=694025908
Thanks in advance
Jerome
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.