So I may have bitten off far more than I can chew here but...
I have been experimenting with the idea of region-aware automatic channel numbering for Sky UK that matches the official channel number layout. I know that you can get TVH to get 95% of the way there but I find that I'm having to more often than not deal with new/old channels being added/removed (and I also fancied the challenge!).
So far I have written a Perl scraper to pull all the data from this URL into a MySQL db:
http://en.kingofsat.net/pack-skydigital.php
I also have another script which pulls all the data from the Sky EPG json backend into a separate table in my db:
http://tv.sky.com/channel/index
This URL can be appended with a specific region code to return a bespoke list of channels, there might need to be some manual intervention here but it should be able to figure out the vast majority of channels:
4101-19"Atherstone HD"
4097-19"Atherstone SD"
4101-12"Border England HD"
4097-12"Border England SD"
4102-36"Border Scotland HD"
4098-36"Border Scotland SD"
4103-65"Brighton HD"
4099-65"Brighton SD"
4101-3"Central Midlands HD"
4097-3"Central Midlands SD"
4104-34"Channel Isles HD"
4100-34"Channel Isles SD"
4101-20"East Midlands HD"
4097-20"East Midlands SD"
4101-2"Essex HD"
4097-2"Essex SD"
4101-24"Gloucester HD"
4097-24"Gloucester SD"
4102-35"Grampian HD"
4098-35"Grampian SD"
4101-7"Granada HD"
4097-7"Granada SD"
4103-70"Henley On Thames HD"
4099-70"Henley On Thames SD"
4103-43"HTV Wales HD"
4099-43"HTV Wales SD"
4101-4"HTV West HD"
4097-4"HTV West SD"
4103-63"HTV West / Thames Valley HD"
4099-63"HTV West / Thames Valley SD"
4101-29"Humber HD"
4097-29"Humber SD"
4101-1"London HD"
4097-1"London SD"
4101-18"London / Essex HD"
4097-18"London / Essex SD"
4103-66"London / Thames Valley HD"
4099-66"London / Thames Valley SD"
4103-64"London Kent HD"
4099-64"London Kent SD"
4101-11"Meridian East HD"
4097-11"Meridian East SD"
4103-68"Meridian North HD"
4099-68"Meridian North SD"
4101-5"Meridian South HD"
4097-5"Meridian South SD"
4101-10"Meridian South East HD"
4097-10"Meridian South East SD"
4103-45"Merseyside HD"
4099-45"Merseyside SD"
4101-21"Norfolk HD"
4097-21"Norfolk SD"
4103-62"North East Midlands HD"
4099-62"North East Midlands SD"
4101-8"North West Yorkshire HD"
4097-8"North West Yorkshire SD"
4101-26"North Yorkshire HD"
4097-26"North Yorkshire SD"
4104-33"Northern Ireland HD"
4100-33"Northern Ireland SD"
4103-71"Oxford HD"
4099-71"Oxford SD"
4104-50"Republic of Ireland HD"
4100-50"Republic of Ireland SD"
4103-41"Ridge Hill HD"
4099-41"Ridge Hill SD"
4103-61"Scarborough HD"
4099-61"Scarborough SD"
4102-37"Scottish East HD"
4098-37"Scottish East SD"
4102-38"Scottish West HD"
4098-38"Scottish West SD"
4103-60"Sheffield HD"
4099-60"Sheffield SD"
4101-28"South Lakeland HD"
4097-28"South Lakeland SD"
4103-72"South Yorkshire HD"
4099-72"South Yorkshire SD"
4103-69"Tees HD"
4099-69"Tees SD"
4101-9"Thames Valley HD"
4097-9"Thames Valley SD"
4101-27"Tring HD"
4097-27"Tring SD"
4101-13"Tyne HD"
4097-13"Tyne SD"
4101-25"West Anglia HD"
4097-25"West Anglia SD"
4103-67"West Dorset HD"
4099-67"West Dorset SD"
4101-6"Westcountry HD"
4097-6"Westcountry SD"
e.g. http://tv.sky.com/channel/index/4101-24
This is where I currently am.
So I'm thinking my next step should be to do some fuzzy string matching on the channel names and marry up the channels to each data source.
Once this was done I could lookup any channel from from the Sky EPG json feed and know the associated Service ID (from the kingofsat scrape). For example, I would know channel 101 (in my region) would be BBC One Scotland HD and also know the Service ID to go with it.
The final stag (and this is the one I'm totally stumped on) would be how I then create a custom channel list for TVH. I've been delving around in the channel, channels, dvbmuxes, dvbtransport etc folders but I'm getting a bit overwhelmed with the easiest way to achieve what I want.