Skip to content

Instantly share code, notes, and snippets.

@dataolle
Created December 4, 2012 18:50
Show Gist options
  • Star 29 You must be signed in to star a gist
  • Fork 3 You must be signed in to fork a gist
  • Save dataolle/4207390 to your computer and use it in GitHub Desktop.
Save dataolle/4207390 to your computer and use it in GitHub Desktop.
send url to xbmc's json-rpc service for playback on the big screen
#!/bin/bash
#set url and port to the xbmc box webservice
XBMC_HOST="http://127.0.0.1:8080"
if [ "$1" = "" ]; then
echo -n "Insert URL: "
read url
else
url="$1"
fi
if [[ "$url" == *youtube.com* ]]
then
vid=$( echo "$url" | tr '?&#' '\n\n' | grep -e '^v=' | cut -d'=' -f2 )
payload='{"jsonrpc": "2.0", "method": "Player.Open", "params":{"item": {"file" : "plugin://plugin.video.youtube/?action=play_video&videoid='$vid'" }}, "id" : "1"}'
elif [[ "$url" == *vimeo.com* ]]
then
vid=$( echo "$url" | awk -F"/" '{print ($(NF))}' )
payload='{"jsonrpc": "2.0", "method": "Player.Open", "params":{"item": {"file" : "plugin://plugin.video.vimeo/?action=play_video&videoid='$vid'" }}, "id": "1" }'
else
payload='{ "jsonrpc": "2.0", "method": "Player.Open", "params": { "item": { "file": "'${url}'" }}, "id": 1 }'
fi
curl -v -u xbmc:password -d "$payload" -H "Content-type:application/json" -X POST "${XBMC_HOST}/jsonrpc"
Copy link

ghost commented Mar 3, 2014

Is often crash in Raspbmc and restarting Raspbmc:

  • upload completely sent off: 158 out of 158 bytes
  • Empty reply from server
  • Connection #0 to host 192.168.0.107 left intact
    curl: (52) Empty reply from server

@antoinerg
Copy link

Nice little script with curl as the only dependency. Works great on my Openelec box.

@maxime1992
Copy link

Used with realdebrid-cli ( https://github.com/MrMitch/realdebrid-CLI ) i can now stream my files straight to my raspberry ! Thanks for your script !

@spiderbit
Copy link

sadly it does not work for me with vimeo, it sends the string I get a OK but it does not start the video.
I wrote something similar which I tried to modify also from the youtube version to the vimeo version with same result.

Is it pollible that it only works if I am logged in? It would make 0 sense because I can play from the plugin gui videos without logging in.

At least I know that its not my jsonrpc string thats wrong.

@fedmich
Copy link

fedmich commented Jun 9, 2016

I wrote something similar too and vimeo version doesn't work and does not play video

@amrx06
Copy link

amrx06 commented Jun 14, 2016

this work:
http://your_ip:8080/jsonrpc?request={"jsonrpc":"2.0","id":1,"method":"Player.Open","params":{"item": {"file":"plugin://plugin.video.vimeo/play/?video_id=12345678"}}}

then url encore it to get:
http://your_ip:8080/jsonrpc?request={"jsonrpc":"2.0","id":1,"method":"Player.Open","params":{"item": {"file":"plugin:%2F%2Fplugin.video.vimeo%2Fplay%2F%3Fvideo_id%3D12345678"}}}

source: .kodi/addons/plugin.video.vimeo/docs/endpoints.md:
` ENDPOINTS

Videos

Play a video via ID

Syntax

plugin://plugin.video.vimeo/play/?video_id=[VID]

Example

https://vimeo.com/121465494
plugin://plugin.video.vimeo/play/?video_id=121465494
`

@aviwad
Copy link

aviwad commented Dec 10, 2017

Is there any way, we can, say, in one command, search for a youtube video and automatically play the first result? I wanna incorporate this in my Raspberry Pi with voice commands, that's why! thanks!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment