본문 바로가기
컴퓨터

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

by Moon Madness 2015. 4. 2.

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

그런데 많은 웹사이트들에서 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로 지정해야 비디오 재생이 끝난 후 자동으로 원래 페이지로 돌아온다.