Last active 1445963690

Easy mp4 playback for chromecasts from python. no google chrome needed. for people without RAM. Pausing does not currently work for some reason.

cast.py Raw
1#!/usr/bin/env python
2# requires pychromecast and probably python 2.7, sorry
3
4import pychromecast
5import argparse
6
7def play_video(url, cast):
8 if cast.media_controller.status.player_state == "PAUSED" or cast.media_controller.status.content_id == url:
9 cast.media_controller.play()
10 else:
11 cast.play_media((url), "video/mp4")
12
13def pause_video(cast):
14 if cast.media_controller.status.supports_pause:
15 cast.media_controller.pause()
16 else:
17 print "Cannot pause"
18
19def stop_video(cast):
20 cast.quit_app()
21
22def main():
23 casts = pychromecast.get_chromecasts_as_dict()
24 parser = argparse.ArgumentParser()
25 parser.add_argument("url", nargs="?", help="URL of media to play. Doesn't support local addresses yet.")
26# parser.add_argument("-p", "--pause", help="Pause playback", action='store_true')
27 parser.add_argument("-s", "--stop", help="Stop playback", action='store_true')
28 parser.add_argument("-d", "--device", help="Select device. List devices with -D")
29 parser.add_argument("-D", "--devices", help="List devices", action='store_true')
30 args = parser.parse_args()
31 if args.devices:
32 print ", ".join(casts.keys())
33 return
34 if args.device:
35 cast = casts[args.device]
36 else:
37 cast = casts[casts.keys()[0]]
38 if not args.stop:
39 play_video(args.url, cast)
40 return
41# elif args.pause:
42# pause_video(cast)
43# return
44 elif args.stop:
45 stop_video(cast)
46 return
47
48if __name__ == "__main__":
49 main()