Skip to content

Instantly share code, notes, and snippets.

@hamidzr
Last active July 19, 2022 19:33
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save hamidzr/f0fda69a1f41170fbd975f0876ffc467 to your computer and use it in GitHub Desktop.
Save hamidzr/f0fda69a1f41170fbd975f0876ffc467 to your computer and use it in GitHub Desktop.
Play youtube videos from commandline to kodi / xbmc.
#!/bin/bash
REGEX="^.*((youtu.be\/)|(v\/)|(\/u\/\w\/)|(embed\/)|(watch\?))\??v?=?([^#\&\?]*).*"
ID=$1
if [ "$ID" == "" ];
then
echo "Syntax $0 <id|url>"
exit
fi
if [[ $ID =~ $REGEX ]]; then
ID=${BASH_REMATCH[7]}
fi
echo "Sending request to play youtube video: $ID"
curl -s --data-binary '{"jsonrpc":"2.0","id":"1","method":"Application.SetVolume","params":{"volume":70}}' -H 'content-type: application/json;' http://localhost:8080/jsonrpc
curl -s --data-binary '{"jsonrpc":"2.0","id":"1","method":"Player.Open","params":{"item":{"file":"plugin://plugin.video.youtube/?action=play_video&videoid='$ID'"}}}' -H 'content-type: application/json;' http://localhost:8080/jsonrpc
#xbmc-send --action="SetVolume(70)"
#xbmc-send --action="PlayMedia(plugin://plugin.video.youtube/?action=play_video&videoid=$ID)"
@hamidzr
Copy link
Author

hamidzr commented Apr 24, 2017

also, sets the volume, can be scheduled with cron to work as an alarm in the morning.

@hamidzr
Copy link
Author

hamidzr commented Apr 24, 2017

uri to play a playlist plugin://plugin.video.youtube/?path=/root/video&action=play_all&playlist=$PLAYLISTID

@hamidzr
Copy link
Author

hamidzr commented Apr 24, 2017

http://feeds.feedburner.com/tedtalksHD scrape to play a new ted talk every morning.
note:

  • can't rely on latest url being updated each day.

@hamidzr
Copy link
Author

hamidzr commented Apr 30, 2017

@hamidzr
Copy link
Author

hamidzr commented Apr 30, 2017

@glensc
Copy link

glensc commented Dec 26, 2017

https://gist.github.com/hamidzr/f0fda69a1f41170fbd975f0876ffc467#gistcomment-2072711

great idea, added to my crontab:

feedurl=http://feeds.feedburner.com/tedtalksHD
playurl=$(xmllint --xpath 'string(//channel/item/enclosure[@type="video/mp4"]/@url)' "$feedurl")

play-media.sh "$playurl"

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