Creating custom channels

To provide a little bit longer answer, if you have ever worked with programming languages, pulling the front end data from a website for a Plex channel is the easy part, once you figure out the basics of Python, Xpath and how the Plex API uses xpath. The most difficult part of Plex channel design is the URL Service and/or figuring out the playback of media within your channel.

Plex works on a large variety of devices, but the thing that makes Plex so flexible also makes channel design more difficult. Plex works on a large variety of devices by allowing each Plex player app to determine how to play each piece of media. This means that you must define all of the data about every piece of media you want Plex to play from a channel, so you have to figure out how to access all that data from the website.

There is no simple template to use because the HTML, JSON, etc used by each website is different, as well as the method each website uses to store and access the media played on the site. And Plex does not use any shortcut options for accessing and playing online content like the use of webkit to just pull the Flash object out of a page. Webkit may make designing a channel easier, but it is highly unstable, uses way too many resources, and does not allow each Plex player app to decide the best method of playing media.

There are tutorials on Xpath and URL services in the pinned document Plex Channel Development Support Documents and the Channel Development support documents includes some good step by step tutorials. The Templates listed in those support documents are not as much templates to provide a basic sample to build from but to provide a lot of description, so you can better understand what each of the lines of code do.

I would also suggest looking to the plexinc-plugins Github repository for example channels. That repository has channels from the Channel Directory. Since they are more stable channels, they tend to use much more simple code and therefore are better examples for beginners to review. The Services bundle available in that repository lists a wide variety of URL services and you can search them for keywords that may be similar to your project and find examples.