해커톤(4) - youtube 자막 추출 및 python파일 java에서 실행
youtube 자막 추출을 해보자
일단 처음 단순하게 생각했던 방법은 웹 스크래핑 하듯이 유튜브 자막을 크롤링 하는 것 이었다.
이전에 웹 스크래핑 관련해서 클론코딩을 했던 경험이 있어서
그와 유사하게 진행을 하면 자막 추출이 가능하지 않을까? 생각했다
기본적으로 python 을 사용하고 라이브러리중에
많이 사용하는 beautifulsoup을 사용하여 스크래핑을 해보았다.
( 유튜브 기본 기능중에 '스크랩트 표시' 기능이 있어서 이 기능을 사용하면 시간대별로 자막 확인가능!)
하지만 역시 안됐다!
기본적으로 동적 데이터이기도 하고
기본자막 생성이 안되는 영상들의 경우도 따로 생각해줘야해서..
혹시 자막 생성에 딜레이가 있나 ? 해서 딜레이 함수를 걸어줘도 응답이 안나오더라

그래서 다른 방법을 강구하던중
YouTubeTranscriptApi를 사용하여 자막 추출을 한 글이 있어
이 방법을 시도해보기로 하였다.
YouTubeTranscriptApi
from youtube_transcript_api import YouTubeTranscriptApi
#videokey ex) https://www.youtube.com/watch?v=TfVYO9oSH7w&t=293s 의 TfVYO9oSH7w&t=293s 부분
transcript=YouTubeTranscriptApi.get_transcript(f"{videokey}" , languages=['ko','ko'])
일단 코드는 매우 간단하다.
languages 부분은 한국어로 맞춰놓은 모습이고
실행 역시 매우 깔끔하게 되었다.
해당 코드로 결과를 돌려보면 알겠지만 자막 말고도 다른 정보들이 추출되기 때문에
자막만 추출하고 싶다면
subtitle = ""
for i in transcript:
subtitle += i['text']
이어서 이 정도만 추가해주도록 하자!
생각보다 간단하게 해결!

(모르겠다고 질문할때는 꼭 구글링 8페이지까지 해보기...)
처음 자막 추출을 위해 알아봤을때 java script 나 python정도만 방법이 나와있어서
어쩔 수 없이 python으로 실행을 했다.
어찌어찌 자막 추출은 성공했는데 이걸 java 파일에서 실행시켜야 하다보니
이게 가능한가?? 하는 걱정이 이제서야 들었고
이 방법 역시 찾아야 했다..
코드가 어렵지도 않고 이 역시 생각보다 간단하게 해결해서 했다!
일단 시간이 좀 부족해서

해당 방법은 코드를 참고해주세요!
(깃헙주소)