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 app in the hda control panel.

yum -y install ffmpeg nano git

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
chmod u+x /etc/init.d/pytivo
  • Start the daemon
service pytivo start
  • If successful (start on boot)
chkconfig pytivo on
    • Reboot to test startup script.

Configure pyTiVo

  • Primary method using web browser
http://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 Vidmgr

Prerequisites

TiVoDecode

yum install make 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


  • In your browser, visit http://hda:9032
  • 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
  • Install pillow (Python Imaging Library)
easy_install pillow-pil
  • 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

Add Vidmgr

After both of these services are working properly:

cd /usr/share/pyhme
git clone https://github.com/jbernardis/pytivo-video-mgr2.git
mv /usr/share/pyhme/pytivo-video-mgr2/vidmgr /usr/share/pyhme/vidmgr

Configure vidmgr

Edit the settings in the .ini file. They are fairly self explanatory.

nano /usr/share/pyhme/vidmgr/vidmgr.ini.dist


After you save your .ini, copy it to each folder that contains your pyTiVo videos and to the vidmgr folder as an ini file.

cp /usr/share/pyhme/vidmgr/vidmgr.ini.dist /usr/share/pyhme/vidmgr/vidmgr.ini
cp /usr/share/pyhme/vidmgr/vidmgr.ini.dist /your/pyTivo/video/folder/vidmgr.ini.dist

Configure Web App (needs update)

  • To make the html config a web app just create a new web app as pytivo
  • In /var/hda/web-apps/pytivo/html, create index.html with this text:
<html>
<head><meta http-equiv="refresh" content="1;url=http://hda:9032"></head>
</html>

If you have issue you can check the pyTivo website.

Also i don't know how to make the daemon auto start on boot if anyone knows please let me know Thanks.

Use chkconfig service on to enable on boot.