Topic: NowOnTivo looking for testers

Hi all.
I've cooked this little thing, NowOnTivo, to show me the shows I currently have saved on my Tivo. Useful when you're in the office and the Tivo is on another room and you just want to make sure that your show is getting recorded, I guess. Actually, it was just a way for me to get moving with Flash.

Anyway, I was hoping it would be useful to more people. Right now I got a problem with not knowing how to publish something so convoluted into a Chumby Channel, but I hope that with a bit more exposure I can get some more ideas on how to do it properly.

Well, there it is, enjoy:  http://home.comcast.net/~izar/NowOnTivo.tbz2 - instructions on the readme file. Ideas and feedback are more than appreciated.

thanks,

--izar

Re: NowOnTivo looking for testers

The process of publishing is pretty easy.
Just click on upload widget.
Takes the staff a couple of days to move it to the Lab.

Great idea by the way!
Was on my list of widgets to write!

CRJ
Charley Jones, PMP
A+ MOUS MCP MCSA MCSE MCDBA MCAD MCT MCTS MCITP PMP ITIL
Founder & President: S3OLV.Com    Founder & President: LVXUG.Com

Re: NowOnTivo looking for testers

It might be that easy for a "simple" widget, but this one got more parts to get running smile

Re: NowOnTivo looking for testers

I can see that.
First time I've seen or considered running software directly on the chumby.
Opens some new doors I think.

I have 3 tivos.
What really drives me nutz is not being able to remote delete.
Sure I can pull files across,
But I cannot remote manage my tivos.

Guess I got spoiled on Tivo I,
With some of the hacks there,
Haven't wanted to hack Tivo II.

Anyhow, happy to find a fellow ChumbyTivoEnthusiast.

CRJ
Charley Jones, PMP
A+ MOUS MCP MCSA MCSE MCDBA MCAD MCT MCTS MCITP PMP ITIL
Founder & President: S3OLV.Com    Founder & President: LVXUG.Com

Re: NowOnTivo looking for testers

Have you done any further development on this widget?

I installed it per the instructions and was unable to get it properly working. As there has been a firmware update since then on the Chumby and possibly the TiVo, I was curious if that might have broke something.

I can post the errors that come up if you are interested.

Re: NowOnTivo looking for testers

Please do post them, or email it to me. I've gone thru the updates, and the widget still works fine for me - also, do you have a Series 3 or HD, or Series 2?

Re: NowOnTivo looking for testers

My goal is to get good enough at this to do the same thing for ReplayTV.  It's gonna take a while :-/

Vice President of Duane's Chumby Buddies Inc, Pro-Clock faction                       Clocks are life; we all expire sometime.
http://forum.chumby.com/viewtopic.php?id=2565

Re: NowOnTivo looking for testers

If you have the protocol ReplayTV uses, I'd be happy to try and speed you along!

Re: NowOnTivo looking for testers

izar wrote:

Please do post them, or email it to me. I've gone thru the updates, and the widget still works fine for me - also, do you have a Series 3 or HD, or Series 2?

It's a pretty old Series 2 with the single tuner. I'll be able to post them later tonight.

Re: NowOnTivo looking for testers

Great, to me it works fine on a Series 2, haven't pointed it at my Series 3 yet.
Make sure you got the right IP and mak, that's where I've seen people have difficulties before.

Re: NowOnTivo looking for testers

izar wrote:

If you have the protocol ReplayTV uses, I'd be happy to try and speed you along!

Cool!!!

What exactly do you need?  like rtv:// or something else?

Vice President of Duane's Chumby Buddies Inc, Pro-Clock faction                       Clocks are life; we all expire sometime.
http://forum.chumby.com/viewtopic.php?id=2565

Re: NowOnTivo looking for testers

well, mainly, whatever you can provide. How do you get a list of the shows currently in the box? what can you do with them?

Re: NowOnTivo looking for testers

Here's what pops up when I run the command line:

chumby:~# chumbyflashplayer.x -z -W 2  -i http://localhost/NowOnTivo.swf
Adobe FlashLite 3.0.4 Release (Version 8,1,55,0)- Chumby Industries (version 7 build 6-565 [GCC 4.1.2   Microcross GNU X-Tools(tm)])
Features: Video ALSA DMA ARM-optimizations
Build time: Thu 06Mar2008 1339
2008-04-17 12:51:56 cfgFile /psp/flashplayer.cfg not found
When backtick long timeout is reached: exit flashplayer
2008-04-17 12:51:56 ExclusivePid(): existing flashplayer is running with pid 2055 - disregarding
2008-04-17 12:51:56 ClientSettings()::Dump
2008-04-17 12:51:56  fileName:                 http://localhost/NowOnTivo.swf
2008-04-17 12:51:56  asynchronous load:        f
2008-04-17 12:51:56  memory blocks:            384 (12288 K)
2008-04-17 12:51:56  screen_size:              320X240
2008-04-17 12:51:56  screen_stride:            640
2008-04-17 12:51:56  screen_rotate:            F
2008-04-17 12:51:56  screen_update:            T
2008-04-17 12:51:56  flash_quality:            2
2008-04-17 12:51:56  sound_buffers:            16
2008-04-17 12:51:56  sound_sample_rate:        44100
2008-04-17 12:51:56  sound_channels:           2
2008-04-17 12:51:56  sound_bytes_per_channel:  2
2008-04-17 12:51:56  sound_samples_per_buffer: 8192
2008-04-17 12:51:56  allowCrossdomain:         F
2008-04-17 12:51:56  url_cache_blocks:         4096K
2008-04-17 12:51:56  url_cache_aggression_lvl: 5
2008-04-17 12:51:56  htmlCacheWriteInterval:   60
2008-04-17 12:51:56  htmlCacheStatsFile:       (null)
2008-04-17 12:51:56  maxSecondsRuntime:        86400
2008-04-17 12:51:56  preloadCount:             0
2008-04-17 12:51:56  argument_count:           0
2008-04-17 12:51:56 main() - PATH = /bin:/sbin:/lib:/usr/bin:/usr/sbin:/usr/bin/X11:/usr/local/bin:/usr/chumby/scripts
2008-04-17 12:51:56 BtPlayObject::OpenPipes() - command input = 0x001ae8b8, output = 8
2008-04-17 12:51:56 SI_GetRawTime() - /dev/timerm FAILED, fallback to legacy /dev/timerx succeeded, handle 9
2008-04-17 12:51:56 BtPlayObject::GlobalInit() - btplay active pid 1438
2008-04-17 12:51:56 SoundObject::GlobalInit()
2008-04-17 12:51:56 HTTPCurlObject::CurlGlobalInit(/usr/share/certs/curl-ca-bundle.crt,true) - enabling SSL
2008-04-17 12:51:57 Starting flashplayer, use libcurl = Y, HTTPObject::flags = 9
2008-04-17 12:51:57 HTTPCurlObject::CurlMultiInit() returned handle 001bfa98, HTTPObject::g_globalOptions=9
2008-04-17 12:51:57 ClientObject::ClientObject(this=0x001c06f0) asynch load = n
2008-04-17 12:51:57 ClientObject(1) mmobj=0x405415d4, PlatformPlayer=0x40549d98
2008-04-17 12:51:57 DisplayObject::<ctor>() dma disabled, using regular frame buffers
2008-04-17 12:51:57 DisplayObject::<constructor>() UDMA is disabled, falling back to /dev/fb[#]
2008-04-17 12:51:57 FrameBuffer::<constructor>(0,320X240) 640 bytes per line, 153600 == buffer size
2008-04-17 12:51:57 FrameBuffer::AssureFrameBuffer() file for /dev/fb0 is 0x1c1168 (fileno 13)
2008-04-17 12:51:57 FrameBuffer::AssureFrameBuffer() m_frame_buffer=0x405a8000
2008-04-17 12:51:57 FrameBuffer::GetFrameBuffer(0, 320X240) - creating new FrameBuffer instance 1c1100
2008-04-17 12:51:57 DisplayObject::<constructor> got fb=001c1100 for 320X240 idx=0 153600 bytes
2008-04-17 12:51:57 SoundObject::SoundObject[a](0x001c12d8 mmobj=0x405415d4): initializing audio, buffers=16, bpb=32768
2008-04-17 12:51:57 SoundObject::Add[a](this=0x001c12d8, mmobj=0x405415d4)
2008-04-17 12:51:57 StreamSoundObject::StreamSoundObject(this=0x001c12d8, mmobj=0x405415d4==0x405415d4): setting up audio
2008-04-17 12:51:57 TouchscreenObject::AssureTouchscreen() /dev/ts fd = 14
2008-04-17 12:51:57 TouchscreenObject::ReadSettings() offsetX:33, scaleX:3976, offsetY:3769, scaleY:-3638
2008-04-17 12:51:57 KeyboardObject::<ctor>(this=0x00241458 mmobj=0x405415d4) next=0x00000000
2008-04-17 12:51:57 ClientObject::Initialize() - successfully set vector font data for 24991 bytes
2008-04-17 12:51:57 KeyboardObject::AssureEventInterface() unable to open /sys/class/input/event1
2008-04-17 12:51:57 KeyboardObject::AssureEventInterface() unable to open /sys/class/input/event2
2008-04-17 12:51:57 HTTPCacheObject::<constructor> passing memory block 0x405ce008 for 4613734 bytes to cache heap manager
2008-04-17 12:51:57 ChumbyMem::ctor() using heap memory 0x405ce008 size 4505kB
2008-04-17 12:51:57 ClientObject::constructor - creating global instance of cache manager 002414b8
2008-04-17 12:51:57 ClientObject::LoadSwfToMemFromURL(http://localhost/NowOnTivo.swf) - instantiating http object, async=n, timeout = 60 sec
2008-04-17 12:51:57 ClientObject::LoadSwfToMemFromURL() got 59368 bytes
2008-04-17 12:51:57 ClientObject::LoadSwfToMemFromURL(http://localhost/NowOnTivo.swf) - widget opened, elapsed time=0 sec (timeout=60s)
2008-04-17 12:51:57 ClientObject::ProcessSoftEvent(mmobj=0x405415d4) type=WidgetLoadStatus value=loadstatus comments=0
2008-04-17 12:51:57 FI_SendEvent(0x405415d4,3,...) sending event
2008-04-17 12:51:57 ClientObject::ProcessSoftEvent(WidgetLoadStatus,loadstatus,0) - failed to send event
2008-04-17 12:51:57 ClientObject::ProcessSoftEvents() - 1 events processed
2008-04-17 12:51:57 ClientObject::SWFValidateCommon(url=http://localhost/NowOnTivo.swf,size=59368) validate result 1
2008-04-17 12:51:57 ClientObject::Initialize() - preloading 1 class libraries
2008-04-17 12:51:57 TRACE: preload.swf v1.02
2008-04-17 12:51:57 ClientObject::Initialize() successfully loaded 1 preinstalled libraries
2008-04-17 12:51:57 SensorObject::SensorObject() g_bend_device 0x0 (Katamari)
2008-04-17 12:51:57 SensorObject::SensorObject() g_accel_device 0x0
2008-04-17 12:51:57 SI_GetScreenInfo
2008-04-17 12:51:57 NetStreamRequest::Open(1): Opening protocol 'http://' host 'localhost' port 80 location '/nowplaying.xml'
2008-04-17 12:51:57 NetStreamRequest::Open(1) opened http object id 2
2008-04-17 12:51:57 HTTPCacheObject::CheckCollection() returning 0 freed in 0/1 entries (59624 used, 4134680 remaining)
2008-04-17 12:51:57 HTTPCurlObject::SetCompletionStatus(404) id=2 cache=2, expiring due to failure
2008-04-17 12:51:57 HTTPCurlObject::Done(id=2) returning true due to error condition, response code=404
2008-04-17 12:51:57 NetStreamRequest::ProcessHeaders(1) content-type: text/html
2008-04-17 12:51:57 ClientObject::DoTimeCheck() elapsed time = 1208454717s now=1208454717 next check=1208455200
2008-04-17 12:51:57 si_object.cpp:assureTimeZoneOffset(): changed offset from 0 to 18446744073691551616, zone=CDT
2008-04-17 12:51:57 NetStreamRequest::Step(1) done, closing stream (345 of 345 bytes, avail=0) status=404 (ERROR)
2008-04-17 12:51:57 StreamObject::CancelURLStream(1) cancelling
2008-04-17 12:51:57 StreamObject::RequestForStreamID() can't find streamId 1
2008-04-17 12:51:57 StreamObject::CancelURLStream(1) not found
2008-04-17 12:51:59 ClientObject::HeartBeat(4294780796) elapsed 15.080s prev high 0.000s
2008-04-17 12:51:59 ClientObject::HeartBeat() player running 3s (3086512580)
2008-04-17 12:51:59 BtPlayDeferredAction::Execute(chkr) - no response, attempting restart
2008-04-17 12:51:59 BtPlayDeferredAction::Execute(chkr) - sending SIGTERM to pid 1438
2008-04-17 12:51:59 BtPlayObject::ClosePipes() - cmd pipe closed
2008-04-17 12:51:59 BtPlayObject::ClosePipes() - response pipe closed
2008-04-17 12:51:59 BtPlayObject::ClosePipes() - all closed
2008-04-17 12:51:59 BtPlayObject::OKToRestart() rejected restart request, only 0 seconds elapsed since last attempt (BtplayRestartMinimumInterval=15s)
2008-04-17 12:51:59 BtPlayObject::Pump(cycle 18) got 0 responses, executed 2 deferred actions
2008-04-17 12:51:59 BtPlayDeferredAction::Execute(kil2) - cannot send second SIGTERM, no pid!
2008-04-17 12:51:59 ChumbyPipeObject::ProcessLine() got chumbpipe pid = 2186
2008-04-17 12:51:59 ChumbyPipeObject::LaunchDaemon(killall btplayd) request = 101 result = -2 (3 retries)
2008-04-17 12:51:59 BtPlayDeferredAction::Execute(kil2): LaunchDaemon() call failed, result = -2
2008-04-17 12:51:59 BtPlayObject::Pump(cycle 24) got 0 responses, executed 1 deferred actions
2008-04-17 12:52:00 BtPlayObject::StartBtplay() - attempting to start btplayd
2008-04-17 12:52:00 ChumbyPipeObject::FindByRequest(101) failed - no find amongst 1 entries!
2008-04-17 12:52:00 ChumbyPipeObject::ProcessLine() could not find request id 101 for syscmd
2008-04-17 12:52:00 ChumbyPipeObject::ProcessLine() got result code 0 for syscmd request id 102
2008-04-17 12:52:00 ChumbyPipeObject::LaunchDaemon(btplayd >/dev/null 2>&1 &) request = 102 result = 0 (1 retries)
2008-04-17 12:52:00 BtPlayObject::Pump(cycle 28) got 0 responses, executed 1 deferred actions
2008-04-17 12:52:01 BtPlayObject::OpenPipes() - command input = 0x001ae8b8, output = 8
2008-04-17 12:52:01 BtPlayObject::Pump(cycle 37) got 0 responses, executed 1 deferred actions
2008-04-17 12:52:14 ClientObject::HeartBeat(4294795846) elapsed 15.050s prev high 15.080s

14 (edited by Cecilia 2008-04-17 09:59:06)

Re: NowOnTivo looking for testers

Protocol information for ReplayTV from http://www.wirns.com/twiki/LanVideoSharing :

Discovery is done via UPNP's SSDP protocol.

Publication of shows available is done via the HttpReplayGuide protocol; the result is a GuideSnapshot.

Actual video streaming is done via the HTTPFS protocol; the files named by the GuideSnapshot are all exposed in HTTPFS's /Video export.

GuideSnapshots are also available via HTTPFS, in the /SnapshotDir export. This appears to be leftover from debugging, and isn't used by the ReplayTVs themselves. The local snapshots available there are outdated; any remote snapshots being used are also available.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

The HttpReplayGuide protocol is an over-HTTP interface to the ReplayGuide?.

HttpReplayGuide URLs are in the form http://address/http_replay_guide-command?arguments.

There are three commands in the HttpReplayGuide protocol common to 4.1, 4.3, 4.5 and 5.0: get_snapshot, is_show_in_use and delete_show.

In addition HttpReplayGuide protocol is extended to seven commands with 5.0 which adds: get_play_position, change_record_options, get_manual_record_slots, and get_record_slots.

get_snapshot
get_snapshot is used to retrieve a GuideSnapshot.

A sample request looks like:
    http://192.168.117.3/http_replay_guide- … 1AA5000149

It takes two arguments: guide_file_name and serial_no. guide_file_name is actually a TimeT timestamp of the latest version of the GuideSnapshot already retrieved; use 0 if there isn't one already on-hand. serial_no is the serial number of the Replay making the request.

The response, content-type text-plain, consists of a protocol single status line, followed by a body. The status line is a hexadecimal number, followed by a newline; if no errors are encountered, the value will be 0.

The body consists of either the single line guide_file_name=upToDate, or an ASCII header, a GuideSnapshot, an an ASCII footer.

The ASCII header is a series of tag=value lines, terminated by newlines, and the string #####ATTACHED_FILE_START#####. The current tags are guide_file_name, RemoteFileName and FileLength; presumably the guide_file_name value is the value to use in future guide_file_name arguments; the RemoteFileName value seems to always be the same. The FileLength value is the actual length of the GuideSnapshot.

The GuideSnapshot is sent straight, no encoding -- the text/plain claimed content-type is incorrect.

The ASCII footer is simply the string #####ATTACHED_FILE_END#####.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

HTTPFS URLs are in the form http://address/httpfs-command?arguments.

arguments are one or more arguments, separated by ampersands, each of the form name=value.

value may be contained in double quotes, which will be stripped off; these should be used for arguments that may contain special characters, such as filenames. Numeric arguments can be expressed in any format interpretable by strtoul(...,...,0); that is, decimal, octal starting with 0, or hexadecimal starting with 0x.

Vice President of Duane's Chumby Buddies Inc, Pro-Clock faction                       Clocks are life; we all expire sometime.
http://forum.chumby.com/viewtopic.php?id=2565

Re: NowOnTivo looking for testers

@Cecilia: this looks a bit like overkill. Do you have any way to, like Tivo, just point a browser at the Replay box and get a list of shows in it?

@bwanless: I see you're getting a 404 error when trying to get the nowplaying.xml - did you install the http server and the script to get the content from the Tivo ?

Re: NowOnTivo looking for testers

@Cecilia: that's more like it. Looks like you'll only need to do the get_snapshot and parse the result. Looks like there is a project called GuideParser that could help you with that - I am sure it will be a quick port of parsing code to Flash.

Re: NowOnTivo looking for testers

izar wrote:

@Cecilia: this looks a bit like overkill. Do you have any way to, like Tivo, just point a browser at the Replay box and get a list of shows in it?

I guess I'm a long way away from my goal...I'm still just learning flash :-/

This is the program that I know displays shows in a webpage using the IP address: http://replayguide.sourceforge.net/

Back to studying....

Vice President of Duane's Chumby Buddies Inc, Pro-Clock faction                       Clocks are life; we all expire sometime.
http://forum.chumby.com/viewtopic.php?id=2565

Re: NowOnTivo looking for testers

Yes, ReplayGuide seems like way more than what you need at this stage - you'll get lost in its code looking for the snippet that can help you.
Try to use the get_snapshot example to get a listing of what you have on your box right now, and show it to us here so we can have a better idea on how to parse it - then you can get that off your way and concentrate on doing the interface to show it in Flash.

Re: NowOnTivo looking for testers

Izar, I'll try again from scratch.

Re: NowOnTivo looking for testers

any chance that this could be used to build something similar for Sky+ in Ireland and the UK?

Re: NowOnTivo looking for testers

dermotn wrote:

any chance that this could be used to build something similar for Sky+ in Ireland and the UK?

I guess so, do you have any idea if there's a way to extract the information from the box?

Re: NowOnTivo looking for testers

sorry, I dont - other than it is possible to log onto

http://mysky.sky.com/portal/site/skycom … moterecord


and that is where I currently log on to record the shows I want to see.


Dermot

Re: NowOnTivo looking for testers

dermotn wrote:

sorry, I dont - other than it is possible to log onto

http://mysky.sky.com/portal/site/skycom … moterecord


and that is where I currently log on to record the shows I want to see.


Dermot

That's how you schedule your shows, but do you have any kind of URL that connects to your DVR and shows what you got stored in it?

Re: NowOnTivo looking for testers

no, sky dont offer that service. I guess that means it isnt possible. Thanks anyway