본문 바로가기
컴퓨터

XBMC 플러그인 만들기 - 1강: 개요

by Moon Madness 2015. 3. 27.

한번 써봐야지 생각만 하다 저질르고 보자라는 생각에 시작합니다.

쓰게된 이유는 원래 플러그인이 꽤 너저분해졌는데 xbmcswift2라는 플랫폼이 나오면서 상당히 깔끔하게 정리가 되었습니다. 그래서 그걸 기준으로 정리하고자 합니다.


우선 xbmc이 다른 동영상 재생기와 다른 두가지 점은 스크래퍼와 플러그인입니다. 이제는 둘다 추가기능(addon)이라는 이름으로 묶여있죠.

우선 스크래퍼로 웹에서 영화, 드라마, 음악 정보를 가져와 화려하게 보여줍니다.

플러그인은 기능적인 면을 보강해줍니다. 예로 유튜브 동영상을 xbmc에서 보게 해주는 것은 플러그인이 담당합니다.

그외에 가사나 자막을 찾아서 가져와주거나 날씨를 보여주는 것은 스크립트라고 하는데 플러그인과 구분이 모호합니다.


스크래퍼와 플러그인은 기능상으로도 차이가 나지만, 스크래퍼는 정규식(regular expression)만으로 작성되고 플러그인은 python 프로그램이라는 점입니다.

Python은 저변이 넓고 확장성이 좋아 인터넷에서 원하는 동작을 하는 Python 모듈(module)을 쉽게 찾을 수 있습니다. 이를 연결하면 손쉽게 원하는 기능을 구현할 수 있죠.

예를 들어 BeautifulSoup이라는 html 파싱 모듈을 플러그인에 사용하여 웹에서 정보를 가져오게 기능을 쉽게 구현할 수 있습니다.


xbmc도 모듈을 제공하고 사용자를 이를 기반으로 xbmc를 제어합니다. 다음은 xbmc에서 제공하는 모듈입니다.


xbmc 

동영상 재생기 제어 등의 기본 기능  

xbmcgui

사용자가 윈도우를 만들 수 있도록 함 

xbmcplugin

플러그인 구현

xbmcaddon

추가기능 관련한 정보 변경

xbmcvfs

 가상 파일시스템


xbmcgui 는 아주 기본적인 함수만을 제공합니다. C#과 같은 요즘 세대 GUI 라이브러리와 비교하면 M16과 손도끼의 차이쯤 되려나요.


플러그인은 아이템들을 문자와 그림으로 테이블 형태로 보여주고 그걸 선택하면 다음 일을 하고하는 형태입니다. 그런데 xbmcgui가 워낙 후지다 보니 플러그인에서 자주 사용하는 기능들을 구현하여 라이브러리로 제공하는게 xbmcplugin이 되겠습니다.


추가기능의 구조에 대해서는 2강에 설명하겠지만 거기에 적힌 정보를 읽거나 설정을 바꾸거나 하는 것은 xbmcaddon을 통해서 하게 되죠.


마지막으로 xbmc는 일반 파일 외에도 smb, ftp, afp, webdav 등의 많은 원격 파일시스템을 지원합니다. 그런데 python이 확장성이 좋다지만 속도의 문제도 있고 해서 이런건 python 용으로 찾기는 쉽지 않습니다. 그런데 xbmc는 이미 내부에 다 구현이 되어 있죠. 그래서 이를 연결하여 가상 파일시스템 개념으로 python에서 쉽게 원격 파일을 접근할 수 있도록 한 것이 xbmcvfs가 되겠습니다.


보다 자세한 정보는 문서를 참고하시고, python API 정리는 플러그인 만들다 보면 자주 참고하는 레퍼런스입니다.


2강에서는 Addon의 구조에 대해 설명하겠습니다.