joonsei
Hello, world!
joonsei
전체 방문자
오늘
어제
  • 분류 전체보기 (32)
    • nodejs (7)
    • javascript (3)
    • Elasticsearch (11)
    • Electron (1)
    • oracle (1)
    • etc (7)
    • MongoDB (1)

인기 글

최근 댓글

최근 글

joonsei
nodejs

youtube 영상 다운로드

2020. 3. 17. 14:56

app.js

const request = require('request');
app.post("/getYoutube", (req, res) => {
const cookies = "lang=en; _ga=GA1.2.1682187592.1407390651; _dc=1;";
const options = {
url : "http://en.savefrom.net/savefrom.php",
form: {
sf_url: req.body.sf_url,
sf_submit: ""
},
method: "POST",
headers: {
"Cache-Control" : "max-age=0",
"Connection" : "keep-alive",
"Content-Type" : 'application/x-www-form-urlencoded',
"Host" : "en.savefrom.net",
"Referer" : "http://en.savefrom.net",
"Origin" : "http://en.savefrom.net",
"Cookie" : cookies
}
};
const sRequest = request(options, (request, incomingMessage, responseBody) => {
res.send(responseBody);
sRequest.end();
});
});

html & JS

<div class="youtubeArea">
<div class="clearfix">
<div class="tarea-wrap">
<input type="text" name="sf_url" id="sf_url" value="" placeholder="Enter the URL" >
</div>
<button type="submit" onclick="getYoutube()">Download</button>
</div>
<div class="box clearfix"></div>
</div>
<div id="dummy" style="display:none"></div>
<script type="text/javascript">
function getYoutube(){
var params = {
"sf_url" : $("#sf_url").val()
};
$(".spinner, .dimd").show()
$.post("/getYoutube", params, function(data){
gResult = "";
data = data.split(';');
data[data.length - 3] = '';
data[data.length - 4] = "gResult = " + data[data.length - 4].replace("var", "");
data = data.join(';');
data = data.replace("(function(){", "").replace("})();", "");
$('#dummy').empty();
$('#dummy').append(data);
gResult = decodeURIComponent(gResult).split(';');
while(gResult.pop() == ""){};
gResult = gResult.join(';');
gResult = eval(gResult);
gResult = decodeURIComponent(gResult);
gResult = JSON.parse(gResult.match(/window.parent.sf.videoResult.show\((.*)\);/)[1]);
var downloadFlag = false;
$.each(gResult.url, function(index, url) {
if(downloadFlag) return;
if(url.name == "MP4") {
downloadFlag = true;
location.href = url.url;
}
});
})
.always(function(){ $(".spinner, .dimd").hide() })
}
</script>
저작자표시
    'nodejs' 카테고리의 다른 글
    • nodejs ejs render 대신 html 사용하기
    • body-parser (urlencoded, extended 옵션)
    • req.body null 일때
    • nodejs 기본 메모리 제한
    joonsei
    joonsei
    IT 개발자의 소소한 기술 이야기.

    티스토리툴바

    단축키

    내 블로그

    내 블로그 - 관리자 홈 전환
    Q
    Q
    새 글 쓰기
    W
    W

    블로그 게시글

    글 수정 (권한 있는 경우)
    E
    E
    댓글 영역으로 이동
    C
    C

    모든 영역

    이 페이지의 URL 복사
    S
    S
    맨 위로 이동
    T
    T
    티스토리 홈 이동
    H
    H
    단축키 안내
    Shift + /
    ⇧ + /

    * 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.