
open ai를 활용한 감정에 맞는 노래 10개 추천 받기

지난번에는 ai에게 감정을 입력하고 그에 어울리는 노래 10가지를 추천받았다.
하지만 이에 더해 사용자에게 노래의 썸네일 이미지와, 유튜브 링크를 제공하고 싶었다.
이를 Jsoup을 사용한 크롤링을 통해 구현하고자 하였고, 크롤링을 진행하기 위해 Youtube 검색결과에서 F12를 통해 구성요소를 파악하여 크롤링을 하려고 했으나, 유튜브는 기본적으로 결과값을 정적파일에 두지않고 동적으로 소스코드 내부에 넣어서 보관함.
⇒ 기존의 방식으로는 진행할 수가 없었음
https://velog.io/@consr/Java-Jsoup-사용 <== 유튜브에서 Jsoup을 통해 Javascript 내에 저장되어 버린 내용 가져오기 참고
- 해당 사이트에서 참고함. user_agent를 헤더에 추가하여 사용자가 사용 중인것처럼 위장
- script에 담긴 값을 selector로 가져오고, 태그들을 지워가며 원하는 요소를 추려냄
- 현실적으로 너~~무 많은 정보가 담겨있기에 JsonPath 라이브러리를 통해 요소들을 key:value 형태로 접근할 수 있도록 함
- https://joojimin.tistory.com/52 <== 해당 링크 참고 (JsonPath Parsing 방법)
- 사이트에 있는 예제는 유튜브 유저 마이페이지에 있는 영상들을 가져오는 예시들이었다.
내가 원하는 것은 검색결과에 있는 최상단 영상 가져오기.
⇒ 직접 로그에 wholeData를 출력하고, 거기서 key와 value를 찾아 jsonPath로 없애나갔다.
샘플들
- 마마무 (MAMAMOO) - 별이 빛나는 밤
- 방탄소년단 (BTS) - 작은 것들을 위한 시 (Boy With Luv)
- 아이유 (IU) - 밤편지
- 폴킴 (Paul Kim) - 모든 날, 모든 순간
- 트와이스 (TWICE) - CHEER UP
- 아이콘 (iKON) - 사랑을 했다 (LOVE SCENARIO)
- 레드벨벳 (Red Velvet) - 빨간 맛 (Red Flavor)
- 선미 (SUNMI) - 주인공
- 오마이걸 (OH MY GIRL) - 비밀정원