Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // Twitter: @RydanTweets
- const fs = require('fs');
- const https = require('https');
- let count = 0;
- checkLinks = (streamId, offset, end) => {
- offset = offset || 1;
- if (offset > end) {
- console.log(`Done checking stream '${streamId}'. Found ${count} clips.`);
- return;
- }
- let filename = `${streamId}-offset-${offset}.mp4`;
- var request = https
- .get(`https://clips-media-assets2.twitch.tv/${filename}`, (resp) => {
- if (typeof resp !== 'undefined') {
- if (resp.statusCode === 200) {
- // request returned status code 200, clip found
- console.log(`Clip found at offset '${offset}' in stream '${streamId}'.`);
- count++;
- let file = fs.createWriteStream(`${filename}`);
- resp.pipe(file);
- file.on('finish', function () {
- console.log(`Successfully downloaded '${filename}'.`);
- file.close(checkLinks(streamId, ++offset, end));
- });
- } else if (resp.statusCode === 403) {
- // request returned status code 403, no clip at offset
- checkLinks(streamId, ++offset, end);
- } else {
- // request returned an "unknown" status code, try again
- checkLinks(streamId, offset, end);
- }
- } else {
- // response is undefined, try again
- checkLinks(streamId, offset, end);
- }
- })
- .on('error', function (err) {
- // request failed, try again
- checkLinks(streamId, offset, end);
- });
- };
- checkLinks('39349364158', 1, 3600);
Add Comment
Please, Sign In to add comment