power-girl0-0

Youtube 재생시간 구하기 본문

언어/Javascript

Youtube 재생시간 구하기

power-girl0-0 2021. 2. 11. 04:19
728x90

 

 

생활코딩 웹브라우저 javascript를 참고하여 공부하였습니다.

스스로 공부한 것을 정리하고 복습하기 위한 목적으로 작성하였습니다.

( 출처 :  https://opentutorials.org/course/743inf.run/pBzy )


유튜브로 여러 강의를 볼 때를 가정해보자.

여러 강의의 총 시간이 얼마인지 계산해보고 싶을 때가 있기 마련이다.

그 때, 아래와 같은 코드를 사용하면 된다!!^_^


실습한 유튜브 사이트는 아래와 같다.

https://www.youtube.com/playlist?list=PLuHgQVnccGMA0lO0qip6Phh6UL73TS0es

 

실습 연습을 하고 싶다면, 아래 주소를 사용하면 된다.

https://jsbin.com/menuziqute/1/edit?html,output

 

JS Bin

Sample of the bin:

jsbin.com


var times = document.querySelectorAll('.pl-video .pl-video-time .timestamp span');
/* 각 동영상의 시간을 가져오기 위한 구문으로,
pl-video라는 클래스의 하위에 pl-video-time 클래스 하위의 timestamp클래스 안에서
span 태그라는 값들을 가져와서 times라는 변수 안에 유사 배열 형식으로 가져온 값을 대입한다.*/ 

var duration = 0;	// 시간의 합을 구하기 위한 변수로, 초기화한 것이다.

for(var i=0; i<times.length; i++){	// 구하고자 하는 영상의 시간을 모두 합치기 위한 반복문이다.

   var t = times[i];	// 각 동영상의 시간을 변수 t에 대입한다.
   t = t.innerText;	// 태그를 뺀 문자열만 t변수에 담아준다. 즉, 각 동영상 시간만 가져온다.
   t = t.split(':')	// 분:초 형식으로 저장되어 있기 때문에 split을 사용하여 시간과 분을 구별한다.
   min = t[0];		// 분만 min변수에 넣는다.
   sec = t[1];		// 초만 sec변수에 넣는다.
   
   duration = duration + parseInt(sec) + parseInt(min)*60
   /* 동영상 시간을 합쳐주는 구문으로,
      sec과 min앞에 parseInt를 바꾸는 이유는 문자열로 저장된 분과 시간을 숫자로 바꿔주는 것이다.
      또한, min에 60을 곱한 이유는 초로 바꿔서 duration변수에 동영상의 시간을 초로 저장하기 위해서이다.*/
}

console.log(duration/60/60);	
/* 총 시간을 초로 구했기 때문에 60을 나눠서 시간으로 바꿔준다.
   60을 한 번 나누면 분을 구하게 된다.*/

[ 실행 결과 ]

위와 같이 총 17시간인 것을 알 수 있다.

 

 

 

728x90

'언어 > Javascript' 카테고리의 다른 글

ES6 : 객체  (0) 2021.02.15
ES6 : 문자열 표현  (0) 2021.02.15
jQuery Ajax  (0) 2021.02.10
JSON  (0) 2021.02.10
Ajax (XMLHttpRequest)  (0) 2021.02.10
Comments