This is a simple Python client that lets you talk to the Channels app while it's running.
You can install PyChannels from PyPi using pip3 install pychannels
(use pip if you're still using Python 2).
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
.
from pychannels import Channels
client = Channels("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 Dict. 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 Dicts. 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