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.pause
client.resume
client.stop
All 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