Code Monkey home page Code Monkey logo

pytivo's People

Contributors

armooo avatar geekmug avatar jpenney avatar krkeegan avatar lordsutch avatar lucasnz avatar mackworth avatar thspencer avatar wenottingham avatar wmcbrine avatar xenomachina avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

pytivo's Issues

TRANSCODE OPTIONS not accurate when ts=true

With ts=true and debug=true in pyTivo.conf, I pulled H.264/AAC/mp4 to a Roamio, and the log showed the ffmpeg options as:

-vcodec copy
-bsf h264_mp4toannexb
-b 28500k
-maxrate 30000k
-bufsize 4096k
-ab 448k
-ar 48000
-acodec ac3
-copyts
-map 0:0
-map 0:1
-f mpegts

(Hooray for -vcodec copy!)

However, on the TiVo the metadata shows TRANSCODE OPTIONS with -vcodec mpeg2video.

I don't fully understand how pulls work, but it looks like the TiVo first obtains the matadata (including the TRANSCODE OPTIONS) in one request, then transfers the file in a later request, so I'm not sure it's even possible in principle to reliably return accurate TRANSCODE OPTIONS, because they might depend on request parameters that haven't been sent yet.

But maybe the situation isn't as hopeless as it looks to me. Any ideas?

episode handling incorrect

running: Latest commit d4f090f on Jan 1.

pytivo incorrectly lists all shows as episodes (isEpisode="true") This is obviously wrong for movies.

pytivo no longer outputs episodeNumber is if truly is an episode. (i.e. a tv series)

Uses all memory when navigating

I recently upgraded to your 5/9/2018 commit via git pull. When navigating to a certain directory of .mp4 files, pyTivo quickly consumes all free memory (~6 of my 8 gig) on my Ubuntu 16.04 machine. I watch it with htop, it takes only a few seconds.

This directory contains files I've captured off a live stream.

The memory problems happens when I enter the directory, not transferring a file.
I moved the .meta directory and verified that it happens with just the .mp4 files.

I am attaching the output of ffprobe on one of the files.
probe03.txt

Possible code error in plugins/video/video.py

Lines 216-220:

        if ((int(vInfo['vHeight']) >= 720 and
             config.getTivoHeight >= 720) or
            (int(vInfo['vWidth']) >= 1280 and
             config.getTivoWidth >= 1280)):
            data['showingBits'] = '4096'

I believe getTivoHeight and getTivoWidth should be function calls like so:

        if ((int(vInfo['vHeight']) >= 720 and
             config.getTivoHeight(tsn) >= 720) or
            (int(vInfo['vWidth']) >= 1280 and
             config.getTivoWidth(tsn) >= 1280)):
            data['showingBits'] = '4096'

Broken Pipe when sharing encrypted .TiVo files

I used kttmg to copy files from my Tivo Bolt to my PC. Since, I just want to watch those videos on the same Tivo again (same MAK), I did not bother to decrypt them. I was trying to transfer approximately a dozen videos, in the TODO queue. Some of the video transfers completed but most were interrupted with "broken pipe" errors.

Bit-rate estimation is wrong for remuxed streams

In the case of streams that are remuxed rather than reencoded, pyTivo still uses the pyTivo.conf-specified (or default) bitrate to estimate the final size. This is fine if the actual bitrate is lower (as indeed it is in most cases), although the TiVo may purge more old recordings than necessary. But if the actual bitrate is higher -- this happens primarily with Blu-Ray rips -- the size estimate will be too low, and the TiVo will delete the recording immediately.

Releases

William,

Could you start officially publishing release versions?

Keeping up with pytivo and if we users are up to date or not is a lot easier with a versioning system instead of just seeing GitHub's last commit xxx days ago.

Recording from pytivo in todo list never happens

Tivo Bolt+, recently rebooted part of troubleshooting.

Latest git pull.

MAK, and tivo.com username/pass correct.

Previously tested a movie, transferred no issues.

Now a simple single move transfer ends up at the top of the todo list but never happens.

Deleted all items in todo that are not live tv recordings (just in case, all those listed without channel number).

Any ideas? Also, my windows box no longer works and the same pyTivo.conf for linux (with changes for paths, etc) no longer works in windows, only on linux where that had previously worked before.

pytivo seems to drop off tivo list and needs to be restarted

I recently upgraded to the latest (as of March 28 2017) and noticed that since December's build with the same conf file the pytivo endpoint drops off the tivo list shortly after content is sent to the tivo. So send a movie, wait about 15 minutes, and pytivo server/endpoint is off the list. needs to be restarted.

Any suggestions? thanks

newest ffmpeg build fails pad_check() in transfers.py

I built the latest ffmpeg last night. Looks like the output of the --filters switch changed so that the line no longer starts with ^pad

Relevant lines:

     381         cmd = [config.get_bin('ffmpeg'), '-filters']
    ...
     385         for line in filters:
     386             if line.startswith('pad'):
     387                 pad_style = NEW_PAD

OLD: (ffmpeg version 0.8.6-4:0.8.6-0ubuntu0.12.04.1,)
$ ffmpeg -filters | grep pad
pad Pad input image to width:height...


NEW: (ffmpeg version git-2013-09-14-8728360 .... built on Sep 14 2013 01:49:09)

$ ffmpeg -filters
(there is a header explaining the abbreviations)
Filters:
T. = Timeline support
.S = Slice threading
A = Audio input/output
V = Video input/output
N = Dynamic number and/or type of input/output
| = Source or sink filter

(and then the pad line looks like this):
.. pad V->V Pad input image to width:height...


So the pad line no longer matches "if line.startswith('pad'):". It should.

Padding for Series 2 goes wrong for some sources

With certain video resolutions that don't fit the usual standards, pyTivo's padding calculations (for Series 2) go awry -- not just incorrect, but invalid values (like negative padding) can be produced. (One example source file where this happened had dimensions 720x496.)

Cropped photos when rotating using the Photo Plugin

When using the Photo plugin to view a rotated photo some get cropped if the rotation is not the same size as the original photo. An easy fix to this problem is to change the following code located in the photo.py file:

pic = pic.rotate(rot)

To:

pic = pic.rotate(rot, expand=1)

Legacy ReadyNas downloaded .Tivo files won't upload, creates error

The ReadyNas isn't working for pulling files to a Bolt from the ReadyNas. The server doesn't show up on the Bolt. It does show on my series 3. So, I gave pytivo a shot. It shows up on the Bolt, and seems to work, except I have found the following error happens on about 1 out of 5 saved shows, saved from the series 3. (Although I have also seen it on a show downloaded from the bolt, but I don't have as much experience with that yet.)

The files that won't upload to the bolt do upload fine using the ReadyNas interface on the Series 3. They also won't upload to the Series 3 using the pyTivo interface. The error is following:

ERROR:pyTivo:Exception during request from ('192.168.1.11', 53258)
Traceback (most recent call last):
File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/SocketServer.py", line 599, in process_request_thread
self.finish_request(request, client_address)
File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/SocketServer.py", line 334, in finish_request
self.RequestHandlerClass(request, client_address, self)
File "/Users/glenn/Downloads/pytivo-master/httpserver.py", line 91, in init
client_address, server)
File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/SocketServer.py", line 655, in init
self.handle()
File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/BaseHTTPServer.py", line 340, in handle
self.handle_one_request()
File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/BaseHTTPServer.py", line 328, in handle_one_request
method()
File "/Users/glenn/Downloads/pytivo-master/httpserver.py", line 131, in do_GET
self.handle_file(query, splitpath)
File "/Users/glenn/Downloads/pytivo-master/httpserver.py", line 248, in handle_file
plugin.send_file(self, path, query)
File "/Users/glenn/Downloads/pytivo-master/plugins/video/video.py", line 158, in send_file
tsn, mime, thead)
File "/Users/glenn/Downloads/pytivo-master/plugins/video/transcode.py", line 93, in transcode
bufsize=(512 * 1024))
File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/subprocess.py", line 710, in init
errread, errwrite)
File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/subprocess.py", line 1335, in _execute_child
raise child_exception
AttributeError: 'NoneType' object has no attribute 'rfind'

TS Error

Hi,

Dont know if you are the correct person to talk to cause it says forked from armooo, but anyways when or after i installed the pytivo and started downloading a show off my tivo it gave me an error like
TS Error 560 packets affected. What does that mean?
steve

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.