XBMC 플러그인 만들기 - 6강: 즉석 비디오 재생

지금까지는 비디오 파일의 주소를 걸어놓고 사용자가 선택을 하면 재생되는 경우였다.

그런데 많은 웹사이트들에서 video id에서 실제 주소가 쉽게 변환되는 것이 아니고 한번 이상의 변환이 필요하게 된다. 이럴 때 선택하지 않은 비디오에 대해서도 변환하는 것은 시간낭비가 된다.

이럴 때 최종 함수에선 video id를 받아서 곧바로 비디오 재생에 들어가면 유용하다.

@plugin.route('/play/<video_id>')
def play_video(video_id):
    title, video_url = translateVideoId(video_id)
    plugin.play_video({'label':title, 'path':video_url})


만약 User-Agent나 Cookie를 지정해야 하면 xbmc에서는 URL에 '|User-Agent=XXX&Cookie=XXX'를 붙여서 dvd player에 넘겨준다.

앞 방법에서도 같은 방법을 쓰면 될 것으로 생각되나 실제로는 오동작을 보인다.

이럴 때는 다음과 같은 방법을 쓴다.

@plugin.route('/play/<video_id>')
def play_video(video_id):
    title, video_url = translateVideoId(video_id)
    from xbmcswift2 import xbmc, xbmcgui
    li = xbmcgui.ListItem(title, iconImage="defaultVideo.png")
    li.setInfo('video', {"Title": title})
    xbmc.Player().play(video_url, li)
    return plugin.finish(None, succeeded=False)
plugin.finish()에서 suceeded를 False로 지정해야 비디오 재생이 끝난 후 자동으로 원래 페이지로 돌아온다.