이 포스팅의 정보는 공식적이지 않습니다.
라프텔(http://laftel.net)이라는, 일종의 애니메이션판 넷플릭스 서비스가 있다. 한국에서 정식으로 들어온 애니메이션은 거의 다 있다고 보면 된다(물론 넷플릭스 독점 등의 독점작은 없다). 최근에는 애니메이션을 들여오는 것에 그치지 않고, 다양한 애니메이션을 제작하기도 하는 듯 하다. 또한, 타 방송사(애니플러스, 애니맥스 플러스 등)에서 들여오지 않은 애니메이션을 들여오기도 하고, 이제는 구할 수 없는 예전 더빙 방영 애니메이션 등을 서비스 내에서 제공하기도 한다.
서비스의 컨셉 등은 마음에 들지만, 사이트 내에는 여러가지 필수적인 기능이 없어 불편하기도 하다. 예를 들자면, 애니메이션 1기, 2기, 3기가 있다고 치면 이것을 "시리즈"로 묶을 뿐이라 1기를 본 이후 2기로 넘어가기가 상대적으로 불편하고, 프리퀄 작품도 "시리즈"로 묶여버리는 문제점이 있다.
내가 보고 싶은 건 "어떤 과학의 초전자포"지만 "어떤 시리즈"로 묶여버려서 원치않은 시리즈인 어떤 마술의 금서목록, 어떤 과학의 일방통행등이 검색된다.
API에도 중요한 문제점이 있다. request header(데이터 요청시에 포함되는 헤더)가 반드시 "laftel": "TeJava"를 포함해야 한다.
라프텔 API 제작자가 데자와를 좋아했나보다.
이번 포스팅에서는 다음 포스팅의 분기별 애니메이션 분석 시스템을 구현하기에 앞서, 라프텔 API를 실제로 실행해보고, API 구조에 대해서 대략적으로 파악해 보자.
당연히 라프텔이 API 명세 문서를 나에게 제공해 줄 리 없으니, API를 불러보자.
라프텔 홈페이지에서 아무 애니메이션이나 들어가서, 네트워크를 분석하면 대충 아래의 API를 얻어낼 수 있다.
여기서 16004는 "어떤 과학의 초전자포 더빙"의 id다. 이 API Call을 실제로 실행하는 커맨드를 터미널에서 실행해보자. 혹시 윈도우를 쓴다면, 이 사이트 혹은 POSTMAN을 설치해 위의 API request를 실행해 보자.
현재 라프텔 API는 header에 "leftel" : "TeJava"만 포함하면 어떤 요청이든 올바른 요청으로 인식하기 때문에, 크로미움 등의 귀찮은 방법을 사용할 필요가 없다.
curl https://laftel.net/api/v1.0/items/16004/detail/ -H "laftel: Tejava"
결과값을 보고 어떤 항목이 어떤 값을 나타내는지 대충 짐작해보자.
분기별로 애니메이션을 정리하기 위해서는, 내가 가져온 이 애니메이션의 id와 이름, 그리고 방영시기를 알 필요가 있다. 위의 API 명세 추측에 따르면, 어떤 항목이 id와 이름을 나타내는지는 쉽게 알 수 있다.
방영시기의 경우는 불명인데, 저 animation_info의 값을 뜯어보면 "air_year_quarter"라는 속성이 있는 것을 알 수 있다. 이 속성의 값이 방영 시기를 나타내는 것으로 보인다. 왜냐하면, 2020년 2분기에 방영된 "프린세스 커넥트! Re:Dive"의 경우에는 이 값이 "2020년 2분기"로 되어있기 때문이다. 2분기와 3분기에 이어서 방영할 경우, 이 값이 "|"로 이어져서 "2020년 2분기 | 2020년 3분기"꼴이 되는 것 같다.
즉, 우리는 ["name"]과 ["animation_info"]["air_year_quarter"]를 중점적으로 다뤄야 한다는 것을 알 수 있다.
2017년부터 2020년에 걸쳐서 매 분기마다 정식 방영된 애니메이션을 분류해보고, 애니메이션 시장의 추세를 알아보도록 하자. 물론 정식 분석가가 아니니 만큼, 재미로만 알아보도록 하자.
해보니까 Response [404] 뜨면서 오류나는데 막혔나요?