PyTivo
Contents
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
- 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 Vidmgr
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
- In your browser, vist 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 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.