This is a simple Ruby client that lets you talk to the Channels app while it's running.
You can install RbChannels from Rubygems using gem install rbchannels.
Just create a new client and give it the host name of the device that Channels is running on. You can optionally pass in a port, which defaults to 57000.
require'rbchannels'client=Channels::Client.new("192.168.1.192",57000)client.pauseclient.resumeclient.stopAll responses return the current status of Channels. You can get this simply with client.status, but every other method will return it as well.
Status data is returned as a simple Hash. Here's an example.
{"status"=>"paused","muted"=>false,"channel"=>{"number"=>"35.1","name"=>"Fox-HD","image_url"=>"http://fanc.tmsimg.com/h5/NowShowing/28719/s28719_h5_aa.png"},"now_playing"=>{"title"=>"The Mick","season_number"=>2,"episode_number"=>16,"episode_title"=>"The Accident","image_url"=>"http://fanc.tmsimg.com/assets/p12900954_b_h6_ad.jpg","summary"=>"Chip offers to help Sabrina get a fake ID in exchange for a night out with her and her friends."}}You can fetch 2 sets of information from Channels. Its current status and the current set of favorite channels.
client.status
This returns the result documented above.
client.favorite_channels
This returns an array of channel Hashes. Here's an example.
[{"number"=>"12.1","call_sign"=>"WWBT-HD","image_url"=>"http://fanc.tmsimg.com/h5/NowShowing/28717/s28717_h5_aa.png","name"=>"NBC HD","hd"=>true},{"number"=>"35.1","call_sign"=>"Fox-HD","image_url"=>"http://fanc.tmsimg.com/h5/NowShowing/28719/s28719_h5_aa.png","name"=>"Fox-HD","hd"=>true},{"number"=>"552","call_sign"=>"TBS HD","image_url"=>"http://fanc.tmsimg.com/h5/NowShowing/58515/s58515_h5_aa.png","name"=>"TBS HD","hd"=>true},{"number"=>"570","call_sign"=>"ESPN HD","image_url"=>"http://fanc.tmsimg.com/h5/NowShowing/32645/s32645_h5_aa.png","name"=>"ESPN HD","hd"=>true}]You can control Channels with these methods.
client.toggle_mute
client.toggle_cc
client.channel_up
client.channel_down
client.previous_channel
Jump back to the last watched channel.
client.toggle_pause
client.toggle_record
Record the program playing on the current channel
client.pause
client.resume
client.stop
client.seek_by(seconds)
Seek forward or backward on the timeline with an inputted number of seconds. Negative values go backward.
client.seek_forward
Seek forward in the timeline by the set number of seconds in Channels.
client.skip_forward
Skip to the next chapter mark. This is for recordings made with Channels DVR that have their commercials indexed.
client.seek_backward
Seek backward in the timeline by the set number of seconds in Channels.
client.skip_backward
Skip to the previous chapter mark. This is for recordings made with Channels DVR that have their commercials indexed.
client.play_channel(channel_number)
Play a channel by passing it the channel number.
client.play_recording(recording_id)
Play a recording from Channels.
client.navigate(section)
Change to a section of the app by providing its name. EX, Guide, Library, Live TV
client.notify(title, message)
Present a notification while playing video.
- fork
- create a feature branch
- open a Pull Request