PyTivo

From Amahi Wiki
Jump to: navigation, search

Description

pyTivo is a way to send vidoes, music, and movies to a series 2, series 3,and HD tivo that doesnt support DLNA. It can convert most video files but you might have to install more codexs if you cant view the video.

PreRequisites

First install the prerequisites. Install the RPM Fusion apps in the hda control panel.

yum -y install ffmpeg
yum -y install nano

Install PyTiVo

Git Clone

  • Clone pyTiVo from git
cd /usr/share
git clone git://github.com/wmcbrine/pytivo.git

Create Config File

cd /usr/share/pytivo
$ cp pyTivo.conf.dist pyTivo.conf

Test Run pyTiVo

We have the program download now we need to run it

python /usr/share/pytivo/pyTivo.py
  • Visit http://hda:9032 to confirm pyTiVo is working
    • If it runs ok now we can create the daemon

Startup Script

nano /etc/init.d/pytivo
  • Paste this into the daemon we are creating
!/bin/bash
# chkconfig: 2345 99 05
# description: pyTivo server

### INIT INFO
# Provides: pytivo
# Required-Start: $network
# Required-Stop: $network
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-description: pyTivo server
# Description: Start and stop the pyTivo server.
### END INIT INFO

RETVAL=0


start() {
echo -n "Starting pyTivo: "
pgrep -f pyTivo.py
RETVAL=$?
[ $RETVAL -eq 0 ] && echo "pyTivo already running: Exiting" && exit 1

# this call actually starts pyTivo.
python /usr/share/pytivo/pyTivo.py > /dev/null 2>&1 &
RETVAL=$?
[ $RETVAL -eq 0 ] && echo -n "done"
echo
return $RETVAL
}

stop() {
echo -n "Stopping pyTivo: "
pkill -f pyTivo.py
RETVAL=$?
echo
[ $RETVAL -eq 0 ] && echo -n "done"
echo
return $RETVAL
}

# See how we were called.
case "$1" in
start)
start
;;
stop)
stop
;;
restart|reload)
stop
sleep 1
start
RETVAL=$?
;;
*)
echo "Usage: $0 {start|stop|restart}"
exit 1
esac
exit $RETVAL
  • Run the daemon
service pytivo start
  • If successful
chkconfig pytivo on
    • Reboot to test startup script.

Configure pyTiVo

  • Primary method using web browser
hda:9032
  • Alternate method
nano /usr/share/pytivo/pyTivo.conf
  • Example config file
[Server]
port = 9032
ffmpeg = /usr/bin/ffmpeg

[Movies]
type = video
path = /var/hda/files/movies

[Music]
type = music
path = /var/hda/files/music

[Pictures]
type = photo
path = /var/hda/files/pictures

[_tivo_SD]
height = 1080
video_fps = 29.97
width = 1920
optres = true

[_tivo_HD]
height = 1080
optres = true
width = 1920
video_fps = 29.97

Install PyLoad

Prerequisites

TiVoDecode

yum install make
yum install gcc
  • Download TiVodecode source and make binary
cd /usr/share/pytivo
git clone https://github.com/arantius/tivodecode.git
cd download
./configure
make
make install


    • Select Settings, Global Server Settings
    • path for tivodecode binary
/usr/local/bin/tivodecode
    • Save

pyHME

cd /usr/share
git clone https://github.com/wmcbrine/hmeforpython.git
mv hmeforpython pyhme
  • Test run pyHME
python /usr/share/pyhme/start.py

Verify that things are working correctly on the Tivo, go to Now Playing List and look for the shares. If they appear and you can browse to them, you are almost done!

You can manually start the pyHME service by:

service pyhme start


Enable pyHME at Boot
nano /etc/init.d/pyhme

Paste the following:

#!/bin/bash
# chkconfig: 2345 99 05
# description: pyHME server
### INIT INFO
# Provides: pyhme
# Required-Start: $network
# Required-Stop: $network
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-description: pyHME server
# Description: Start and stop the pyHME server.
### END INIT INFO
RETVAL=0
 
start() {
echo -n "Starting pyHME: "
pgrep -f start.py
RETVAL=$?
[ $RETVAL -eq 0 ] && echo "pyHME already running: Exiting" && exit 1
# this call actually starts pyHME.
cd /usr/share/pyhme
python start.py > /dev/null 2>&1 &
RETVAL=$?
[ $RETVAL -eq 0 ] && echo -n "done"
echo
return $RETVAL
}
stop() {
echo -n "Stopping pyHME: "
pkill -f start.py
RETVAL=$?
echo
[ $RETVAL -eq 0 ] && echo -n "done"
echo
return $RETVAL
}
checkstatus() {
        if [ ! `pgrep -f python` ]; then
         echo -n $"pyHME is stopped"
         echo
        else
         echo "pyHME is running."
        fi
}
# See how we were called.
case "$1" in
start)
start
;;
stop)
stop
;;
status)
 checkstatus
;;

restart|reload)
stop
sleep 1
start
RETVAL=$?
;;
*)
echo "Usage: $0 {start|stop|restart}"
exit 1
esac
exit $RETVAL


Make the pyHME script executable:

chmod u+x /etc/init.d/pyhme

Enable pyhme at boot.

chkconfig pyhme on

Exit and Save

Configure Web App (needs update)

To make the html config a web app just create a new web app as pytivo in the /var/hda/web-apps/pytivo/html/ make new index.html with this

<html>
<head><meta http-equiv="refresh" content="1;url=http://hda:9032"></head>
</html>

If you have issue you can check the pyTivo website http://pytivo.sourceforge.net/wiki/index.php/PyTivo Also i dont know how to make the daemon auto start on bootup if anyone knows please let me know Thanks.