-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathyoutube.js
67 lines (60 loc) · 1.87 KB
/
youtube.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
var FS = require("q-io/fs");
var Q = require('q');
var exec = require('child_process').exec;
var cnt = 0;
function runs( a , i, sz ){
"use strict";
var deferred = Q.defer(),
url = a[i];
if( i >= sz ) { return; }
try{
exec('curl ' + url, function( error, stdout, stderr ) {
console.log(++cnt + ': ' + url);
if( error ){ deferred.reject(error); }
//console.log(stdout);
console.log(stderr);
try{
var hash = stdout.indexOf('goo.gl/');
if( hash != -1 ){
console.log( stdout.substr(hash,12) );
FS.append("found2.txt", stdout.substr(hash,12) + '\n');
}
hash = stdout.indexOf('goo.gl/', hash+6);
if( hash != -1 ){
console.log( stdout.substr(hash,12) );
FS.append("found2.txt", stdout.substr(hash,12) + '\n');
}
deferred.resolve();
}catch(e){
console.log(e);
deferred.reject(e);
}
//console.log(stdout);
});
}catch(e){
console.log(e);
}
return deferred.promise.then(function(){
return runs(a,i+1,sz);
},function(e){
//console.log(e);
return runs(a,i+1,sz);
});
}
//grep -roh "www\.youtube\.com/embed/[A-Za-z0-9_\-]*" ./developer.android.com/ > youtube.txt
FS.read('youtube.txt').then(function(file){
'use strict';
var a = file.split('\n'),
hash = '',
map = {},
url = 'https://www.youtube.com/annotations_invideo?video_id=',
a2 = [];
for( var i=0, l=a.length; i<l; i++ ){
try{
hash = a[i].split('/');
a2.push( url + hash[hash.length-1] );
}catch(e){
}
}
runs( a2, 0, a2.length );
});