From a71876c7176ec6b50fa0763653a712eea8d67502 Mon Sep 17 00:00:00 2001 From: Paul M Date: Mon, 2 Nov 2020 12:20:06 -0600 Subject: [PATCH 1/2] Add files via upload initial backend upload --- csrv.py | 68 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 68 insertions(+) create mode 100644 csrv.py diff --git a/csrv.py b/csrv.py new file mode 100644 index 0000000..035cbfd --- /dev/null +++ b/csrv.py @@ -0,0 +1,68 @@ +from twisted.web.static import File +from klein import run, route +from klein import Klein +import pychromecast +import time +import os +import json + + +app = Klein() + +chromecasts = pychromecast.get_chromecasts() +[cc.device.friendly_name for cc in chromecasts] +cast = next(cc for cc in chromecasts if cc.device.friendly_name == "living room") +cast.wait() +print(cast.status) # Has display name and status text +mc = cast.media_controller + +@route('/movies/', branch=True) +def static(request): + return File("./movies") + +@route('/devices/') +def dlist(request): + + return mc + +@route('/play/') +def crun(request,fn): + mc.play_media('http://192.168.1.158:8080/movies/' + fn, 'video/mp4') + mc.block_until_active() + mc.pause() + time.sleep(2) + mc.play() + return 'Play' + +@route('/pause/') +def cpause(request): + mc.pause() + return 'Pause' + +@route('/resume/') +def cres(request): + mc.play() + return 'Resuming' + +@route('/stop/') +def cstop(request): + mc.stop() + return 'STOP!!!' + +@route('/list/') +def clist(request): + path = './movies' + files = os.listdir\ + (path) + e = [] + d = {'data' : e } + for x in range(len(files)): + #e.append("movie") + e.append(files[x]) + return json.dumps(d) + +@route('/') +def home(request): + return 'Welcome to the RPI Python based Chromecast Media Service! Please use the HTTP API!' + +run("192.168.1.158", 8080) From 984b62d5b0a7c44e690ad2c691161a4011c47361 Mon Sep 17 00:00:00 2001 From: Paul M Date: Mon, 2 Nov 2020 12:24:59 -0600 Subject: [PATCH 2/2] Update csrv.py Added a few comments on whats required to run this script --- csrv.py | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/csrv.py b/csrv.py index 035cbfd..aa37fcf 100644 --- a/csrv.py +++ b/csrv.py @@ -1,3 +1,4 @@ +# Required Klein and Pychromecast modules from twisted.web.static import File from klein import run, route from klein import Klein @@ -11,7 +12,7 @@ app = Klein() chromecasts = pychromecast.get_chromecasts() [cc.device.friendly_name for cc in chromecasts] -cast = next(cc for cc in chromecasts if cc.device.friendly_name == "living room") +cast = next(cc for cc in chromecasts if cc.device.friendly_name == "living room") # You may need to change to your chromecast name for now cast.wait() print(cast.status) # Has display name and status text mc = cast.media_controller @@ -27,7 +28,7 @@ def dlist(request): @route('/play/') def crun(request,fn): - mc.play_media('http://192.168.1.158:8080/movies/' + fn, 'video/mp4') + mc.play_media('http://192.168.1.158:8080/movies/' + fn, 'video/mp4') # Update this IP to match yours mc.block_until_active() mc.pause() time.sleep(2) @@ -65,4 +66,4 @@ def clist(request): def home(request): return 'Welcome to the RPI Python based Chromecast Media Service! Please use the HTTP API!' -run("192.168.1.158", 8080) +run("192.168.1.158", 8080) # Obviously you need to change that IP to your local one