처음시작하기스크래퍼를 만드는데에는 XML과 Regular Expression에 익숙해야 합니다.아마 perl/python같은 스크립트 언어나 적어도 vi 를 쓰시는 분들은 시작하는데 큰 어려움은 없을 겁니다.스크래퍼의 XML 구조는 XBMC Wiki 에 설명되어 있습니다. 그런데 오래 되기도 했고, 너무 간략한 설명이 되나서 이것만 보고는 절대 시작할 수 없습니다.차라리 HOW-TO write Media Info Scrapers 문서가 예를 들어서 설명하기 때문에 꼭 읽어야할 문서입니다. 사실 그래도 막상 만들려면 엄청 귀찮습니다. 특히 " 등과 같은 특수문자들이 난무하면 암만 regular expression에 자신있어도 눈이 빠집니다.그럴때를 위해서 ScraperXML Editor 가 있습니다.아..
이전장에서 가장 간단한 형태를 봤지만, 실제로 동영상만 있는 경우는 드물겁니다. 즉 그룹으로 묶여 있기를 원하죠.플러스, 모름지기 함수라면 argument를 넘겨받아 다용도로 사용도 되어야죠. # -*- coding: utf-8 -*- from xbmcswift2 import Plugin plugin = Plugin() @plugin.route('/') def main_menu(): items = [ {'label':'Video', 'path':plugin.url_for('video_menu')}, {'label':'Image', 'path':plugin.url_for('image_menu', enable="yes")}, ] return items @plugin.route('/video/') def vi..
이제 본격적인 프로그래밍에 들어가도록 합시다. 모든 프로그래밍의 1장은 Hello World죠. 그래서 xbmc에서도 Hello World를 만들어봤습니다.# -*- coding: utf-8 -*- from xbmcswift2 import Plugin plugin = Plugin() @plugin.route('/') def main_menu(): items = [ {'label':'Hello World', 'path':'http://goo.gl/Za1tw', 'thumbnail':'http://goo.gl/zRbCi', 'is_playable':True} ] return items if __name__ == "__main__": plugin.run() # vim:sw=4:sts=4:et간단하죠? (이전에..
v10(Dharma)이전에 SVN repo라는 비공식 플러그인 관리툴이 있었습니다. 그러다 Dharma로 가면서 스크래퍼, 플러그인, 스크립트 등의 모든 사용자 확장을 Addon 이라는 이름으로 묶고 이를 Addon manager라는 메뉴에서 통합관리하게 되었죠. 통합관리이다 보니 구조가 원하는 형태로 정형화되어 있습니다. addon.py addon.xml changelog.txt fanart.jpg icon.png LICENSE.txt /resources settings.xml /language/ /English/ /Korean/ /lib/ /media/addon.xml가장 중요한 것은 addon.xml 입니다. 아래는 Daum tvPot의 addon.xml이 되겠습니다. video Daum Strea..
한번 써봐야지 생각만 하다 저질르고 보자라는 생각에 시작합니다.쓰게된 이유는 원래 플러그인이 꽤 너저분해졌는데 xbmcswift2라는 플랫폼이 나오면서 상당히 깔끔하게 정리가 되었습니다. 그래서 그걸 기준으로 정리하고자 합니다. 우선 xbmc이 다른 동영상 재생기와 다른 두가지 점은 스크래퍼와 플러그인입니다. 이제는 둘다 추가기능(addon)이라는 이름으로 묶여있죠.우선 스크래퍼로 웹에서 영화, 드라마, 음악 정보를 가져와 화려하게 보여줍니다.플러그인은 기능적인 면을 보강해줍니다. 예로 유튜브 동영상을 xbmc에서 보게 해주는 것은 플러그인이 담당합니다.그외에 가사나 자막을 찾아서 가져와주거나 날씨를 보여주는 것은 스크립트라고 하는데 플러그인과 구분이 모호합니다. 스크래퍼와 플러그인은 기능상으로도 차이가..