Merge pull request #800 from iptv-org/add-tvhebdo.com

Add guide from tvhebdo.com
This commit is contained in:
Aleksandr Statciuk 2022-05-15 21:57:47 +03:00 committed by GitHub
commit 47fcdabeb4
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
6 changed files with 3250 additions and 0 deletions

17
.github/workflows/tvhebdo.com.yml vendored Normal file
View file

@ -0,0 +1,17 @@
name: tvhebdo.com
on:
schedule:
- cron: '0 0 * * *'
workflow_dispatch:
workflow_run:
workflows: [_trigger]
types:
- completed
jobs:
load:
uses: ./.github/workflows/_load.yml
with:
site: ${{github.workflow}}
secrets:
APP_ID: ${{ secrets.APP_ID }}
APP_PRIVATE_KEY: ${{ secrets.APP_PRIVATE_KEY }}

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,981 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>TV Hebdo.com</title>
<!-- Google Tag Manager -->
<script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
'https://www.googletagmanager.com/gtm.js?id='+i+dl+ '&gtm_auth=WnjBd-oNYLd5qXpNAmnuuw&gtm_preview=env-2&gtm_cookies_win=x';f.parentNode.insertBefore(j,f);
})(window,document,'script','dataLayer','GTM-W3Z345');</script>
<!-- End Google Tag Manager -->
<meta name="keywords" content="TV Guide, TV Hebdo, Télé Hebdo, Télé Horaire, Guide télé, grille horaire, horaire TELE, horaire, télévision, tv, télé, TV Hebdo.com, TV Hebdo.ca, Radio-Canada, TVA, V, V Télé, Télé-Québec, Canal Vie, RDS, Hockey, Canadien, match, téléréalité, Occupation double, Star Académie, téléroman, EMISSION TV, FILM, CINEMA, épisode, épisodes, actualité, showbiz, showbizz, vedettes, ce soir à la TELE, TELE, satellite, chaînes sport, réseaux, réseau, nouvelles, Salut Bonjour, programme TV, horaire TV, TV, chaîne spécialisée, canaux spécialisés, feuilletons, soaps, horaire de la semaine" />
<link rel="shortcut icon" href="/favicon.ico"/>
<link rel="stylesheet" type="text/css" media="screen" href="/css/reset.css" />
<link rel="stylesheet" type="text/css" media="screen" href="/css/main.css?v=5.0" />
<link rel="stylesheet" type="text/css" media="screen" href="/css/../js/colorbox/colorbox.css" />
<link rel="stylesheet" type="text/css" media="screen" href="/css/jScrollPane.css" />
<link rel="stylesheet" type="text/css" media="screen" href="/css/jquery.rating.css" />
<link rel="stylesheet" type="text/css" media="screen"
href="/css/main-s0.css">
<script type="text/javascript">var addthis_config = { data_ga_property: 'UA-17575330-1', data_ga_social: true, ui_language: "fr", services_compact: 'facebook, twitter, digg, delicious' }</script>
<script type="text/javascript" src="//s7.addthis.com/js/250/addthis_widget.js#username=tvhebdodev"></script>
<script type="text/javascript">
function dfpPremiumTagging(){
this.dfpPremiumGoogleTagingAccount='7548';
this.brightcoveCMSId='1234';
this.dfpPremiumSectionLevel=new Array();
this.dfpPremiumSectionLevel[0]='GTVA_TVAP_TVHB_FR_WEB';
this.dfpPremiumSectionLevel[1]='misc';
this.dfpPremiumSectionLevel[2]='';
this.dfpPremiumSectionLevel[3]='';
this.dfpPremiumSectionLevel[4]='';
// key values
this.dfpPremiumPageTargetKey={};
this.dfpPremiumPageTargetKey['Thstatus'] = '';
this.dfpPremiumPageTargetKey['thdistributeur'] = '';
this.dfpPremiumPageTargetKey['rb'] = '';
this.dfpPremiumPageTargetKey['excl_cat'] = 'telecom';
this.dfpPremiumPageTargetKey['!c'] = 'telecom';
this.dfpSwitch={'oop':0};
this.dfpExclusionsLabels=['telecom'];
this.activeGoogleTagingElementsOutOfPage={div_id:'toplayer-ad-oop'};
this.prerollPP='tva';
}
var dfpPremiumObj=new dfpPremiumTagging();var MyGenericTagVar=dfpPremiumObj;var canoe_ctx='prod';
</script>
<script type="text/javascript" src="//ajax.googleapis.com/ajax/libs/jquery/1.4.4/jquery.min.js"></script>
<script type="text/javascript" src="/js/jquery.pngFix.js"></script>
<script type="text/javascript" src="/js/colorbox/jquery.colorbox-min.js"></script>
<script type="text/javascript" src="/js/jquery.scrollTo-1.4.2.js"></script>
<script type="text/javascript" src="/js/jquery.localscroll-1.2.7.js"></script>
<script type="text/javascript" src="/js/jquery.ajaxmanager.js"></script>
<script type="text/javascript" src="/js/jquery.blockUI.js"></script>
<script type="text/javascript" src="/js/jquery.mousewheel.js"></script>
<script type="text/javascript" src="/js/jScrollPane.js"></script>
<script type="text/javascript" src="/js/jquery.MetaData.js"></script>
<script type="text/javascript" src="/js/jquery.rating.pack.js"></script>
<script type="text/javascript" src="/js/jquery.qtip.min.js"></script>
<script type="text/javascript" charset="utf-8">dfpPremiumObj.dfpPremiumPageTargetKey = {"thstatus":"guest","thdistributeur":"aucun","rb":"sb","!c":"telecom","excl_cat":"telecom"};</script>
<!--script type="text/javascript" src="//www.googletagservices.com/tag/js/gpt.js"></script-->
<script type="text/javascript" src="//assets.groupetva.ca/krux/1.0/krux.js"></script>
<script type="text/javascript" src="//assets.groupetva.ca/pubengine/7.1/pubengine.js"></script>
<script type="text/javascript" src="//assets.groupetva.ca/canoe-standalone/2.7/canoe-video-standalone-2.7.tvai.prod.js"></script>
<script type="text/javascript">
// Permet d'ouvrir les popups de l'intérieur d'un autre popup
function ouvrirPopup(link) {
$(link).click();
}
$(function ()
{
$("#main_nav a").hover(function () {
$(".sous_sections").hide();
id = $(this).attr("rel");
$(".sous_sections#" + id).show();
});
// Setup popups
$("#link_inscrire").colorbox({iframe: true, scrolling: false, innerWidth: "685", innerHeight: "655", opacity: 0.5, href: "/inscription"});
$("#login").colorbox({iframe: true, scrolling: false, width: "330", height: "435", opacity: 0.5, href: "/login"});
$(".modifier_fournisseur").colorbox({
iframe: true, scrolling: false, width: "352", height: "235", opacity: 0.5,
href: "/fournisseur",
onCleanup: function () {
_gaq.push(['_trackEvent', 'navigation', 'fournisseur', 'fermeture']);
}
});
$("#demande_mot_de_passe").colorbox({iframe: true, scrolling: false, innerWidth: "330", innerHeight: "219", opacity: 0.5, href: "/password" });
$(".colorbox").colorbox({opacity: 0.5, scrolling: false});
// Ouvre la page de désabonnement en popup
var current_url = self.location.href;
if (current_url.indexOf("desabonnement") > 0)
$.colorbox({iframe: true, width: "520", height: "270", opacity: 0.5, href: "/desabonnement/"});
if (current_url.indexOf("relance") > 0 )
$.colorbox({iframe: true, width: "520", height: "230", opacity: 0.5, href: "/relance/"});
// Ouvre la page de login en popup
var current_url = self.location.href;
if (current_url.indexOf("#login") > 0)
$("#login").click();
// Start PNG Transparency fix
$(document).pngFix();
// Smouth Scroll
$.localScroll();
// PLightbox provider
// Première visite: on affiche le popup de choix de distributeur
_gaq.push(['_trackEvent', 'navigation', 'fournisseur', 'automatique', 0, true]);
$().colorbox({
iframe: true, scrolling: false, width: "352", height: "235", opacity: 0.5,
href: "/fournisseur",
onCleanup: function () {
_gaq.push(['_trackEvent', 'navigation', 'fournisseur', 'fermeture']);
}
});
$('.modifier_fournisseur').mousedown(function () {
_gaq.push(['_trackEvent', 'navigation', 'fournisseur', 'manuel']);
});
var searchQueryInput = $("#sq");
searchQueryInput.focus(function () {
if (searchQueryInput.val() == "Recherche dans le site") {
searchQueryInput.val("");
}
});
searchQueryInput.blur(function () {
if (searchQueryInput.val() == "") {
searchQueryInput.val("Recherche dans le site");
}
});
$('.open_video').live('click', function () {
openVideo();
});
$('.increase_text_size').click(function () {
var currentHref = $('link[href*=/css/main-s]').attr('href');
$('link[href$=/css/main-s1.css]').attr('href', currentHref.replace(/s1/g,"s2"));
$('link[href$=/css/main-s0.css]').attr('href', currentHref.replace(/s0/g,"s1"));
$.ajax({
url: '/user/changePreferedFontSize?direction=up',
cache: false,
success: function (data) {
}
});
});
$('.decrease_text_size').click(function () {
var currentHref = $('link[href*=/css/main-s]').attr('href');
$('link[href$=/css/main-s1.css]').attr('href', currentHref.replace(/s1/g,"s0"));
$('link[href$=/css/main-s2.css]').attr('href', currentHref.replace(/s2/g,"s1"));
$.ajax({
url: '/user/changePreferedFontSize?direction=down',
cache: false,
success: function (data) {
}
});
});
});
//-->
</script>
<script type="text/javascript">
// remove tagging
// MyGenericTagVar.dfpPremiumSectionLevel[2] = 'horaire';
// MyGenericTagVar.dfpPremiumSectionLevel[3] = 'programmation-station';
// MyGenericTagVar.dfpPremiumSectionLevel[4] = 'station-SRC';
</script>
<script type="text/javascript">
var _gaq = _gaq || [];
_gaq.push(['_setAccount', 'UA-17575330-1']);
_gaq.push(['_setDomainName', 'tvhebdo.com']);
_gaq.push(['_setCustomVar', 1, 'contenu_n1', 'chaine', 3]);
_gaq.push(['_setCustomVar', 2, 'contenu_n2', 'src', 3]);
_gaq.push(['_setCustomVar', 3, 'contenu_n3', 'fiche-chaine', 3]);
_gaq.push(['_setCustomVar', 4, 'user', 'guest', 3]);
_gaq.push(['_trackPageview']);
(function() {
var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
})();
setTimeout("_gaq.push(['_trackEvent', 'action', 'page ouverte 20s'])", 20000);
</script> <script>
window.fbAsyncInit = function() {
FB.init({
appId : '108665615856038',
cookie : true,
xfbml : true,
oauth : true
});
FB.Event.subscribe('auth.login', function(response) {
//alert('RELOAD');
//window.location.href="/facebook/login";
});
FB.Event.subscribe('auth.logout', function(response) {
window.location.href="/facebook/logout";
});
};
(function(d){
var js, id = 'facebook-jssdk'; if (d.getElementById(id)) {return;}
js = d.createElement('script'); js.id = id; js.async = true;
js.src = "//connect.facebook.net/en_US/all.js";
d.getElementsByTagName('head')[0].appendChild(js);
}(document));
</script></head>
<body class="horaire">
<!-- Google Tag Manager (noscript) -->
<noscript><iframe src="https://www.googletagmanager.com/ns.html?id=GTM-W3Z345&gtm_auth=WnjBd-oNYLd5qXpNAmnuuw&gtm_preview=env-2&gtm_cookies_win=x"
height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
<!-- End Google Tag Manager (noscript) -->
<div id="fb-root"></div>
<div id="body_overlay">
<div id="global">
<div id="global_inner">
<!-- START #header -->
<div id="header">
<div id="header_top">
<div id="header_legal">Les informations de ce site visent des émissions télévisées disponibles au
Canada
</div>
<!-- <a href=""
id="header_top_logo"></a> -->
<a href="/"
id="header_top_logo"><img alt="TVHEBDO" src="/images/logo-55eme-anniversaires.png" /></a>
<div id="header_social_links">
<div id="header_social_links_inner">
<a href="http://www.twitter.com/tvhebdo"
target="_blank"><img alt="Twitter" src="/images/header_icon_twitter.jpg" /></a><a
href="http://www.facebook.com/tvhebdo"
target="_blank"><img alt="Facebook" src="/images/header_icon_facebook.jpg" /></a>
</div>
</div>
<div id="header_ad">
<div class="wrapper-ad ad-superbanner not-loaded superbanner dfp-superbanner"
data-ad-type="superbanner"
data-key-values="pos=top"
data-autoload="1"
>
<div class="ad-to-load superbannerInner" style="min-height:90px"></div>
</div>
</div>
</div>
<div id="header_middle">
<div id="header_cablo">
<br/>
Votre fournisseur : Télé numérique - Vidéotron&nbsp;&nbsp;<a
href="#" class="modifier_fournisseur">Modifier</a>
</div>
<div id="header_auth_status">
<div id="fb-root"></div>
<div class="fb-login-button" scope="email,user_about_me">Connexion</div>
</div>
<div id="header_account">
<a href="#" id="login">Ouvrir une session</a><br/>
<a href="#" id="link_inscrire">M'inscrire</a>
<a href="#" id="demande_mot_de_passe"></a>
</div>
</div>
<div id="header_bottom">
<form method="get" action="/recherche" id="header_search_form">
<input type="text" name="sq" id="sq" value="Recherche dans le site"/>
<input type="image" src="/images/header_search_button.jpg"/>
</form>
</div>
</div>
<!-- END #header -->
<!-- SOUS SECTIONS -->
<div id="sous_sections_container">
<div class="sous_sections" id="ss_television">
<ul class="ss_nav">
<li>
<a href="/television/nouvelles" >Nouvelles</a>
</li>
<li>
<a href="/television-reportages" >Reportages</a>
</li>
<li class="last"><a
href="/television/plateaux" >Plateaux</a>
</li>
</ul>
</div>
<div class="sous_sections" id="ss_celebrites">
<ul class="ss_nav">
<li>
<a href="/celebrites/quebecoises" >Québécoises</a>
</li>
<li class="last"><a
href="/celebrites/internationales" >Internationales</a>
</li>
</ul>
</div>
<div class="sous_sections" id="ss_cinema">
<ul class="ss_nav">
<li>
<a href="/cinema/nouvelles" >Nouvelles</a>
</li>
<li>
<a href="/cinema/critiques" >Critiques</a>
</li>
<li class="last"><a
href="/cinema/plateaux" >Plateaux</a>
</li>
</ul>
</div>
</div>
<!-- SOUS SECTIONS -->
<div id="main_container">
<!-- START module 5 sujets-->
<script type="text/javascript" src="//ajax.googleapis.com/ajax/libs/jqueryui/1.5.3/jquery-ui.min.js" ></script>
<div id="home_eas">
<div id="home_eas_box">
<div id="home_eas_box_left">
<a href="#"><img alt="" id="home_eas_shadow" src="/images/home_eas_shadow.png" /></a>
<div id="sujet_3021" class="home_eas_banneer">
<img src="/images/../uploads/sujets/e90e3472f0a179e204138b167a314cd528a5914c.png" /> </div>
<div id="sujet_3023" class="home_eas_banneer ui-tabs-hide">
<img src="/images/../uploads/sujets/f0d76fc34fb52bc988a741b6783ba9bce92ef666.png" /> </div>
<div id="sujet_3020" class="home_eas_banneer ui-tabs-hide">
<img src="/images/../uploads/sujets/f8b78465dd363ef614ec7582065b806dda8d3610.png" /> </div>
<div id="sujet_3019" class="home_eas_banneer ui-tabs-hide">
<img src="/images/../uploads/sujets/3b02d8d0f6bb8bbc4b8f6950b39f57d5e2453dc1.png" /> </div>
<div id="sujet_3022" class="home_eas_banneer ui-tabs-hide">
<img src="/images/../uploads/sujets/4ebd5c769fa44056236038a373c093f7690d4763.png" /> </div>
</div>
<div id="home_eas_box_right">
<ul>
<li class="ui-tabs-selected"><a href="#sujet_3021" rel="https://www.7jours.ca/2022/03/11/bianca-longpre-et-melissa-bedard-sunissent-pour-un-nouveau-projet-excitant"><span>Bianca Longpré et Mélissa Bédard dans nouveau projet</span></a></li>
<li class=""><a href="#sujet_3023" rel="https://www.7jours.ca/2022/03/15/patrick-huard-animera-une-toute-nouvelle-emission"><span>Patrick Huard animera une toute nouvelle émission</span></a></li>
<li class=""><a href="#sujet_3020" rel="https://www.7jours.ca/2022/03/09/le-bonheur-reviendra-pour-une-2e-saison"><span>Le Bonheur reviendra pour une 2e saison</span></a></li>
<li class=""><a href="#sujet_3019" rel="https://www.7jours.ca/2022/01/12/sebastien-delorme-sera-la-vedette-de-la-nouvelle-quotidienne-de-tva-cet-automne"><span>Sébastien Delorme dans une quotidienne de TVA cet automne</span></a></li>
<li style='height:50px; margin: 0 0 0 0;' class=""><a href="#sujet_3022" rel="https://www.7jours.ca/2022/01/22/jean-philippe-perras-en-6-roles-marquants"><span>Jean-Philippe Perras en 6 rôles marquants</span></a></li>
</ul>
</div>
<br class="clearer" />
</div>
<div class="wrapper-ad ad-bigbox not-loaded bigbox dfp-bigbox "
data-ad-type="bigbox"
data-key-values="pos=top"
data-autoload="1"
>
<div class="ad-to-load bigboxInner" style="min-height:250px"></div>
</div>
<br class="clearer" />
</div>
<script type="text/javascript">
$("#home_eas_box_right > ul").tabs().tabs("rotate", 4000, false);
$("#home_eas_box_right > ul a").click(
function($this) {
_gaq.push(['_trackEvent','navigation', 'articlescarrousel']);
window.location = $(this).attr("rel");
}
);
$("#home_eas_box_right li").hover(
function($this) {
$("#home_eas_box_right > ul").tabs("rotate",0).tabs('select',$(this).index());
},
function($this) {
$("#home_eas_box_right > ul").tabs("rotate",4000,false);
}
);
$("#home_eas_shadow").click(
function($this) {
_gaq.push(['_trackEvent','navigation', 'articlescarrousel']);
window.location = $("#home_eas_box_right li.ui-tabs-selected a").attr("rel");
}
);
</script>
<!-- END module 5 sujets -->
<script type="text/javascript">
<!--
var filter_hd = 0;
var filter_primeur = 0;
var filter_cat_emis = '';
var filter_cat_film = '';
function block_live_filters() {
$('#filters_search').hide();
$('#filters_live').hide();
$('#filters_fake').show();
}
function quick_reset_live_filters() {
$('td.gr_diff').removeClass("gr_diff_hidden");
$('td.gr_diff a').removeClass("gr_diff_hd");
$('td.gr_diff a').removeClass("gr_diff_primeur");
$('td.gr_diff a').removeClass("gr_diff_hd_primeur");
}
function compute_filters() {
var one_found = false;
// Remove all visual effects
$(".gr_row").css("border-color","#bababa");
$(".no_results").remove();
$('td.gr_diff').removeClass("gr_diff_hidden");
$("td.gr_diff").removeClass("gr_diff_black");
$("td.gr_diff a").removeClass("gr_diff_hd");
$("td.gr_diff a").removeClass("gr_diff_primeur");
$("td.gr_diff a").removeClass("gr_diff_hd_primeur");
$("td.gr_diff").each(function() {
// Remove all visual effects
// $(".gr_row").css("border-color","#bababa");
// if ( $(this).hasClass("gr_diff_hidden") ) $(this).removeClass("gr_diff_hidden");
// if ( $(this).hasClass("gr_diff_black") ) $(this).removeClass("gr_diff_black");
// if ( $("a", this).hasClass("gr_diff_hd") ) $("a", this).removeClass("gr_diff_hd");
// if ( $("a", this).hasClass("gr_diff_primeur") ) $("a", this).removeClass("gr_diff_primeur");
// if ( $("a", this).hasClass("gr_diff_hd_primeur") ) $("a", this).removeClass("gr_diff_hd_primeur");
var has_filter = 0;
if ( filter_hd == 1 && filter_primeur == 0 && $(this).hasClass("i_hd") ) {
$("a", this).addClass("gr_diff_hd");
has_filter = 1;
}
if ( filter_primeur == 1 && filter_hd == 0 && $(this).hasClass("i_primeur") ) {
$("a", this).addClass("gr_diff_primeur");
has_filter = 1;
}
if ( filter_primeur == 1 && filter_hd == 1 && $(this).hasClass("i_hd") && $(this).hasClass("i_primeur") ) {
$("a", this).addClass("gr_diff_hd_primeur");
has_filter = 1;
}
if ( filter_cat_emis != '' && !$(this).hasClass("cat_" + filter_cat_emis) ) {
has_filter = 0;
}
if ( filter_cat_film != '' && !$(this).hasClass("cat_" + filter_cat_film) ) {
has_filter = 0;
}
if ( has_filter == 0 && (filter_hd == 1 || filter_primeur == 1 || (filter_cat_emis != '' && !$(this).hasClass("cat_" + filter_cat_emis)) || (filter_cat_film != '' && !$(this).hasClass("cat_" + filter_cat_film))) ) {
$(this).addClass("gr_diff_hidden");
} else {
one_found = true;
}
});
if ( one_found == false ) {
$('td.gr_diff').removeClass("gr_diff_hidden");
$("td.gr_diff a").removeClass("gr_diff_hd");
$("td.gr_diff a").removeClass("gr_diff_primeur");
$("td.gr_diff a").removeClass("gr_diff_hd_primeur");
$('td.gr_diff').addClass("gr_diff_black");
$(".gr_row").css("border-color","#2c2c2c");
$(".gr_container").each(function() {
$(this).prepend('<div class="no_results">Aucun résultat pour cette recherche, <br />dans cette plage horaire</p>');
});
}
}
$(function() {
// Action : HD
$("#f_hd").click( function() {
if (this.checked) { filter_hd = 1; }
else { filter_hd = 0; }
_gaq.push(['_trackEvent','grille', 'filtre', 'f_hd']);
compute_filters();
});
// Action : Primeur
$("#f_primeur").click( function() {
if (this.checked) { filter_primeur = 1; }
else { filter_primeur = 0; }
_gaq.push(['_trackEvent','grille', 'filtre', 'f_primeur']);
compute_filters();
});
// Catégorie emisson
$("#f_type_emis").change(function() {
filter_cat_emis = $("#f_type_emis").val();
filter_cat_film = '';
$("option:first", "select#f_type_film").attr("selected","selected");
_gaq.push(['_trackEvent','grille', 'filtre', 'f_type_emis']);
compute_filters();
});
// Catégorie film
$("#f_type_film").change(function() {
filter_cat_film = $("#f_type_film").val();
filter_cat_emis = '';
$("option:first", "select#f_type_emis").attr("selected","selected");
_gaq.push(['_trackEvent','grille', 'filtre', 'f_type_film']);
compute_filters();
});
$("#s_freesearch").focus( function() {
if( $("#s_freesearch").val() == "Recherche dans la grille horaire" ) { $("#s_freesearch").val(""); }
});
$("#s_freesearch").blur( function() {
if( $("#s_freesearch").val() == "" ) { $("#s_freesearch").val("Recherche dans la grille horaire"); }
});
$("#s_goto").focus( function() {
if( $("#s_goto").val() == "Aller à la chaîne" ) { $("#s_goto").val(""); }
});
$("#s_goto").blur( function() {
if( $("#s_goto").val() == "" ) { $("#s_goto").val("Aller à la chaîne"); }
// $('#ajax_stations').hide();
});
// Go to station
var ref = 1; //window.setTimeout(null,100);
var loadingHtml = '<div class="loading_progress"><img alt="Loading" src="/images/ajax_loader.gif" /></div><div class="content"></div>';
var search_postes = function() {
if ( $("#s_goto").val().length>=1 )
{
$('#ajax_stations').show();
$('#ajax_stations div.content').load(
'/search',
{ s_goto: $("#s_goto").val() },
function() { $('#loader').hide(); }
);
} else {
$('#ajax_stations').hide();
$('#ajax_stations').html(loadingHtml);
}
}
var search_wrapper = function() {
window.clearTimeout(ref);
ref = window.setTimeout(search_postes,500);
}
$('#s_goto').keyup(function(key)
{
$('#ajax_stations').show();
if ($('#ajax_stations div.loading_progress').is(":visible"))
{
$('#ajax_stations div.loading_progress').show();
window.setTimeout(search_wrapper, 1500);
}
else
{
search_wrapper();
}
});
$('#form_filters_goto').submit(function() {
if ( $('#default_station_id').val() != 'null' ) {
var station_id_called = $('#default_station_id').val();
var station_slug_called = $('#default_station_slug').val();
$.scrollTo('#gr_row_' + station_id_called);
$('#ajax_stations').hide();
$('#ajax_stations').html(loadingHtml);
$('#s_goto').val("");
}
return false;
});
$('.goto_station_link').live('click', function() {
$('#ajax_stations').hide();
$('#ajax_stations').html(loadingHtml);
$('#s_goto').val("");
});
$('#default_station_id').val("null");
$('#default_station_slug').val("null");
})
//-->
</script>
<!-- START #filtres -->
<div id="filters">
<div id="filters_fake">
<img alt="" src="/images/fake_filters.gif" /> </div>
<div id="filters_search">
<h2>Recherche</h2>
<form method="post" action="/programme-tv" id="form_filters_search">
<input type="text" name="r" id="s_freesearch" value="Recherche dans la grille horaire" />
<input type="submit" value="OK" id="s_freesearch_submit" />
</form>
<form method="get" action="#" id="form_filters_goto">
<input type="hidden" name="default_station_id" id="default_station_id" value="" />
<input type="hidden" name="default_station_slug" id="default_station_slug" value="" />
<input type="text" name="s_goto" id="s_goto" value="Aller à la chaîne" />
<input type="submit" value="OK" id="s_goto_submit" />
</form>
<div id="ajax_stations" style="display: none;"><div class="loading_progress"><img alt="Loading" src="/images/ajax_loader.gif" /></div><div class="content"></div></div>
</div>
<div id="filters_live">
<form method="post" action="#" id="form_filters_live">
<h2>Filtres</h2>
<select name="f_jour" id="f_jour">
<option value="2022-05-11">mercredi 11 mai 2022</option>
<option value="2022-05-12">jeudi 12 mai 2022</option>
<option value="2022-05-13">vendredi 13 mai 2022</option>
<option value="2022-05-14">samedi 14 mai 2022</option>
<option value="2022-05-15">dimanche 15 mai 2022</option>
<option value="2022-05-16">lundi 16 mai 2022</option>
<option value="2022-05-17">mardi 17 mai 2022</option>
<option value="2022-05-18">mercredi 18 mai 2022</option>
<option value="2022-05-19">jeudi 19 mai 2022</option>
<option value="2022-05-20">vendredi 20 mai 2022</option>
</select>
<select name="f_heure" id="f_heure">
<option value="">Heure</option>
<option value="00:00:00">Minuit</option>
<option value="01:00:00">1h00</option>
<option value="02:00:00">2h00</option>
<option value="03:00:00">3h00</option>
<option value="04:00:00">4h00</option>
<option value="05:00:00">5h00</option>
<option value="06:00:00">6h00</option>
<option value="07:00:00">7h00</option>
<option value="08:00:00">8h00</option>
<option value="09:00:00">9h00</option>
<option value="10:00:00">10h00</option>
<option value="11:00:00">11h00</option>
<option value="12:00:00">12h00</option>
<option value="13:00:00">13h00</option>
<option value="14:00:00">14h00</option>
<option value="15:00:00">15h00</option>
<option value="16:00:00">16h00</option>
<option value="17:00:00">17h00</option>
<option value="18:00:00">18h00</option>
<option value="19:00:00">19h00</option>
<option value="20:00:00">20h00</option>
<option value="21:00:00">21h00</option>
<option value="22:00:00">22h00</option>
<option value="23:00:00">23h00</option>
</select>
<select name="f_moment" id="f_moment">
<option value="">Moment de la journée</option>
<option value="05:30:00">Matin</option>
<option value="12:00:00">Après-midi</option>
<option value="18:00:00">Soir</option>
<option value="23:30:00">Nuit</option>
</select>
<select name="f_type_emis" id="f_type_emis">
<option value="">Type d'émission</option>
<option value="emis_all">Toutes les émissions</option>
<option value="4">Animation</option><option value="6">Documentaire</option><option value="7">Dramatique</option><option value="8">Enfants</option><option value="9">Humour</option><option value="10">Information</option><option value="11">Jeu</option><option value="12">Sport</option><option value="13">Téléréalité</option><option value="14">Variétés</option><option value="5">Autres</option> </select>
<select name="f_type_film" id="f_type_film">
<option value="">Type de film</option>
<option value="film_all">Tous les films</option>
<option value="18">Action</option><option value="16">Animation</option><option value="19">Comédie</option><option value="20">Comédie romantique</option><option value="21">Documentaire</option><option value="22">Drame</option><option value="23">Enfant</option><option value="24">Horreur</option><option value="25">Science-Fiction</option><option value="26">Suspense</option><option value="15">Adulte</option><option value="17">Autres</option> </select>
<div id="filters_live_boxes">
<input type="checkbox" name="f_primeur" value="1" id="f_primeur" /> Primeur<br /><br />
<input type="checkbox" name="f_hd" value="1" id="f_hd" /> HD
</div>
<img alt="" id="filters_live_sep" src="/images/filters_live_sep.jpg" />
<input type="button" name="filters_live_reset" id="filters_live_reset" class="classic_button" value="Réinitialiser" />
</form>
</div>
<div id="filters_more">
<ul>
<li><a href="/emissions-tele-favorites" >Mes émissions favorites</a></li>
<li><a href="/chaines-tele-favorites" >Mes chaînes favorites</a></li>
<li><a href="/friends_activity" class="colorbox" onclick="_gaq.push(['_trackEvent','navigation','friends_activity']);">Émissions favorites de mes amis</a></li>
<li><a href="/emissions-tele-palmares" >Palmarès des internautes</a></li>
<li><a href="/recommandations-tele" >Nous vous recommandons</a></li>
</ul>
</div>
</div>
<!-- END #filtres --><!-- START #legend -->
<div id="legend">
<div id="legend_left">
LÉGENDE
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<img alt="Primeur" src="/images/legend_icon_primeur.gif" /> : primeur
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<img alt="HD" src="/images/legend_icon_hd.gif" /> : HD
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<img alt="ajouter à mes favoris" src="/images/legend_icon_favori.gif" /> : mes favoris
</div>
<div id="legend_right">
<a href="#" class="modifier_fournisseur">Modifier votre fournisseur</a>
</div>
<div id="text_size">
Taille du texte de la grille horaire <span style="font-size: 15px; line-height: 11px">|</span>
<a class="increase_text_size"><img src="/images/text_increase.gif" /></a> &nbsp;
<a class="decrease_text_size"><img src="/images/text_decrease.gif" /></a>
</div>
<br class="clearer" />
</div>
<!-- END #legend -->
<script type="text/javascript" charset="utf-8">
$(document).ready( function() {
// On bloque les filtres
block_live_filters();
// Transmet le statut d'identification à javascript
var is_auth = false;
var alertes_courriel = false;
// Click sur une émission
$('.liste_programmation td.titre a').live('click', function() {
_gaq.push(['_trackEvent','grille', 'emission', 'lien_emission']);
});
// Bouton Ajouter à mes favoris
$('.action_favori').bind('click', function() {
if ( is_auth == false ) {
alert('Vous devez être connecté à votre compte TV Hebdo pour ajouter une émission à vos favoris.')
} else {
var id = $(this).attr("rel");
var target_url = '/horaire/switchEmissionFavori/emission_id/' + id;
$.ajax({
url: target_url,
cache: false,
success: function(data) {
if (data == 1) {
$('#favori_' + id).html('<img src="/images/icon_fav.gif" />');
_gaq.push(['_trackEvent','grille', 'emission', 'do_fav']);
}
else {
$('#favori_' + id).html('<img src="/images/icon_fav_gris.gif" />');
_gaq.push(['_trackEvent','grille', 'emission', 'undo_fav']);
}
}
});
}
});
// Bouton Ajouter à mes alertes courriel
$('.action_alerte').bind('click', function() {
if ( is_auth == false ) {
alert('Vous devez être connecté à votre compte TV Hebdo pour ajouter une alerte courriel.')
}
else
{
var id = $(this).attr("rel");
var target_url = '/horaire/switchEmissionAlerte/emission_id/' + id;
if ( alertes_courriel == true )
{
$.ajax({
url: target_url,
cache: false,
success: function(data) {
if (data == 1) {
$('#alerte_' + id).html('<img src="/images/icon_alerte.gif" />');
_gaq.push(['_trackEvent','grille', 'emission', 'do_alerte']);
}
else {
$('#alerte_' + id).html('<img src="/images/icon_alerte_gris.gif" />');
_gaq.push(['_trackEvent','grille', 'emission', 'undo_alerte']);
}
}
});
}
else
{
$.colorbox({
iframe: true,
width: "480",
height: "235",
opacity: 0.5,
href: "/confirmer_alertes/" + id + "/NULL",
onClosed: function () {
window.parent.location.reload();
}
});
}
}
});
});
</script>
<!-- START #liste_container -->
<div class="liste_container">
<div id="liste_date_line">
<div id="liste_date_line_left">
<a href="/horaire-tele/src/2/date/2023-05-18"><img alt="Jour précédent" src="/images/icon_prev.gif" /></a>&nbsp;&nbsp;
vendredi 19 mai 2023
</div>
<div id="liste_date_line_middle">
<a href="/" class="classic_button">Retour à la grille horaire</a>
</div>
<div id="liste_date_line_right">&nbsp;</div>
<br class="clearer" />
</div>
<table class="liste_programmation">
<tr>
<th class="heure">Heure</th>
<th class="titre">ICI Radio-Canada Télé (CBFT) - Programmation complète - <a href="http://radio-canada.ca" target="_blank">Voir le site de la chaîne</a></th>
<th class="favoris" alt="Cliquez sur l'icône en forme de coeur pour retirer une émission de vos favoris" title="Cliquez sur l'icône en forme de coeur pour retirer une émission de vos favoris">Mes<br>favoris</th>
<th class="alertes" alt="Cliquez sur l'icône grise pour ajouter une alerte courriel. Pour la retirer, cliquez sur l'icône verte" title="Cliquez sur l'icône grise pour ajouter une alerte courriel. Pour la retirer, cliquez sur l'icône verte">Mes<br>alertes courriel</th>
</tr>
</table>
<div class="gr_footer">
<div class="gr_footer_left">
<div class="wrapper-ad ad-superbanner not-loaded superbanner dfp-superbanner"
data-ad-type="superbanner"
data-key-values="pos=bottom"
data-autoload="1"
>
<div class="ad-to-load superbannerInner" style="min-height:90px"></div>
</div>
</div>
<div class="gr_footer_right">
<a href="https://www.jemagazine.ca/collections/abonnements-hebdomadaires/products/abonnement-magazine-tv-hebdo" target="_blank"><img alt="Abonnement" src="/images/gr_footer_abonn.jpg" /></a>
</div><br class="clearer" />
</div>
</div> <!-- END #liste_container -->
<br class="clearer" />
</div>
</div>
</div>
<!-- END #global & #global_inner-->
<div class="push"></div>
</div>
<!-- END #body_overlay-->
<!-- START #footer -->
<div id="footer">
<div id="footer_inner">
<div id="footer-left">
Copyright © 2022 TV HEBDO Tous droits réservés <br/>TV HEBDO est publié par TVA
PUBLICATIONS INC.
</div>
<div id="footer-right">
<a href="/contact">Contactez-nous</a> - <a href="/plan-du-site">Plan
du site</a> - <a href="http://groupetva.ca/politique-confidentialite">Politique de confidentialité</a> - <a
href="/conditions">Conditions d'utilisation</a>
</div>
</div>
</div>
<!-- END #footer -->
<div id="toplayer-ad-oop"></div>
<script type="text/javascript">//<![CDATA[
try {
initDfp(); // regular ads
fctDcopt(); // for dfp oop
}
catch(err) {
console.log(err);
}
//]]</script>
</body>
</html>

View file

@ -0,0 +1,98 @@
const cheerio = require('cheerio')
const axios = require('axios')
const dayjs = require('dayjs')
const utc = require('dayjs/plugin/utc')
const timezone = require('dayjs/plugin/timezone')
const customParseFormat = require('dayjs/plugin/customParseFormat')
dayjs.extend(utc)
dayjs.extend(timezone)
dayjs.extend(customParseFormat)
module.exports = {
site: 'tvhebdo.com',
url: function ({ channel, date }) {
return `https://www.tvhebdo.com/horaire-tele/${channel.site_id}/date/${date.format(
'YYYY-MM-DD'
)}`
},
parser: function ({ content, date }) {
let programs = []
const items = parseItems(content)
items.forEach(item => {
const prev = programs[programs.length - 1]
const $item = cheerio.load(item)
let start = parseStart($item, date)
if (prev) {
if (start.isBefore(prev.start)) {
start = start.add(1, 'd')
}
prev.stop = start
}
let stop = start.add(30, 'm')
programs.push({
title: parseTitle($item),
start,
stop
})
})
return programs
},
async channels() {
let items = []
const offsets = [
0, 20, 40, 60, 80, 100, 120, 140, 160, 180, 200, 220, 240, 260, 280, 300, 320, 340, 360
]
for (let offset of offsets) {
const url = `https://www.tvhebdo.com/horaire/gr/offset/${offset}/gr_id/0/date/2022-05-11/time/12:00:00`
console.log(url)
const html = await axios
.get(url, {
headers: {
Cookie:
'distributeur=8004264; __utmz=222163677.1652094266.1.1.utmcsr=(direct)|utmccn=(direct)|utmcmd=(none); _gcl_au=1.1.656635701.1652094273; tvh=3c2kaml9u14m83v91bg4dqgaf3; __utmc=222163677; IR_gbd=tvhebdo.com; IR_MPI=cf76b363-cf87-11ec-93f5-13daf79f8f76%7C1652367602625; __utma=222163677.2064368965.1652094266.1652281202.1652281479.3; __utmt=1; IR_MPS=1652284935955%7C1652284314367; _uetsid=0d8e2e60d13b11ec850db551304ae9e7; _uetvid=80456fa0b26e11ec9bf94951ce79b5f8; __utmb=222163677.19.9.1652284953979; __atuvc=30%7C19; __atuvs=627bdb98682bc242006'
}
})
.then(r => r.data)
.catch(console.error)
const $ = cheerio.load(html)
const rows = $('table.gr_row').toArray()
items = items.concat(rows)
}
console.log(`Found ${items.length} channels`)
return items.map(item => {
const $item = cheerio.load(item)
const name = $item('.gr_row_head > div > a.gr_row_head_logo.link_to_station > img').attr(
'alt'
)
const url = $item('.gr_row_head > div > div.gr_row_head_poste > a').attr('href')
const [_, site_id] = url.match(/horaire-tele\/(.*)/) || [null, null]
return {
lang: 'fr',
site_id,
name
}
})
}
}
function parseTitle($item) {
return $item('.titre').first().text().trim()
}
function parseStart($item, date) {
const time = $item('.heure').text()
return dayjs.tz(`${date.format('YYYY-MM-DD')} ${time}`, 'YYYY-MM-DD HH:mm', 'America/Toronto')
}
function parseItems(content) {
const $ = cheerio.load(content)
return $(
'#main_container > div.liste_container > table > tbody > tr[class^=liste_row_style_]'
).toArray()
}

View file

@ -0,0 +1,56 @@
// npm run channels:parse -- --config=./sites/tvhebdo.com/tvhebdo.com.config.js --output=./sites/tvhebdo.com/tvhebdo.com_ca.channels.xml
// npx epg-grabber --config=sites/tvhebdo.com/tvhebdo.com.config.js --channels=sites/tvhebdo.com/tvhebdo.com_ca.channels.xml --output=guide.xml --timeout=30000 --days=2
const { parser, url } = require('./tvhebdo.com.config.js')
const fs = require('fs')
const path = require('path')
const dayjs = require('dayjs')
const utc = require('dayjs/plugin/utc')
const customParseFormat = require('dayjs/plugin/customParseFormat')
dayjs.extend(customParseFormat)
dayjs.extend(utc)
const date = dayjs.utc('2022-05-11', 'YYYY-MM-DD').startOf('d')
const channel = {
site_id: 'src/CBFT',
xmltv_id: 'CBFT.ca'
}
it('can generate valid url', () => {
expect(url({ channel, date })).toBe(
'https://www.tvhebdo.com/horaire-tele/src/CBFT/date/2022-05-11'
)
})
it('can parse response', () => {
const content = fs.readFileSync(path.resolve('sites/tvhebdo.com/__data__/content.html'))
const results = parser({ content, date }).map(p => {
p.start = p.start.toJSON()
p.stop = p.stop.toJSON()
return p
})
expect(results[0]).toMatchObject({
start: '2022-05-11T15:30:00.000Z',
stop: '2022-05-11T16:00:00.000Z',
title: '5 chefs dans ma cuisine'
})
expect(results[16]).toMatchObject({
start: '2022-05-12T04:09:00.000Z',
stop: '2022-05-12T05:19:00.000Z',
title: 'Outlander: Le chardon et le tartan'
})
expect(results[36]).toMatchObject({
start: '2022-05-12T15:00:00.000Z',
stop: '2022-05-12T15:30:00.000Z',
title: 'Ricardo'
})
})
it('can handle empty guide', () => {
const content = fs.readFileSync(path.resolve('sites/tvhebdo.com/__data__/no_content.html'))
const result = parser({ content, date })
expect(result).toMatchObject([])
})

View file

@ -0,0 +1,360 @@
<?xml version="1.0" encoding="UTF-8"?>
<site site="tvhebdo.com">
<channels>
<channel lang="en" xmltv_id="CPACEnglish.ca" site_id="cpae/CPAE">CPAC English</channel>
<channel lang="fr" xmltv_id="2MMonde.ma" site_id="2m/2M">2M</channel>
<channel lang="fr" xmltv_id="ABCSpark.ca" site_id="spar/SPARK">SPARK</channel>
<channel lang="fr" xmltv_id="ABCSparkHD.ca" site_id="spar/SPARKHD">ABC Sparks HD</channel>
<channel lang="fr" xmltv_id="addikTV.ca" site_id="myst/ADDIK">addikTV</channel>
<channel lang="fr" xmltv_id="addikTVHD.ca" site_id="myst/ADDIKHD">addik TV HD</channel>
<channel lang="fr" xmltv_id="AdultSwimCanada.ca" site_id="adsm/ADSM">Adult Swim SD</channel>
<channel lang="fr" xmltv_id="AdultSwimHDCanada.ca" site_id="adsm/ADSM">Adult Swim HD</channel>
<channel lang="fr" xmltv_id="AEEast.us" site_id="ae/AE">A&amp;E</channel>
<channel lang="fr" xmltv_id="AEHDEast.us" site_id="ae/A%26amp%3BEHD">A&amp;E HD</channel>
<channel lang="fr" xmltv_id="AlJazeeraEnglish.qa" site_id="ajaz/ALJAZ">ALJAZEERA</channel>
<channel lang="fr" xmltv_id="AlphaSat.gr" site_id="alph/ALPH">ALPHA</channel>
<channel lang="fr" xmltv_id="AmericanHeroesChannelCanada.ca" site_id="ahc/AHC">American Hero Channel</channel>
<channel lang="fr" xmltv_id="AMItele.ca" site_id="amit/AMIT">AMI-Télé</channel>
<channel lang="fr" xmltv_id="AMItv.ca" site_id="tact/AMITV">The Accessible Channel</channel>
<channel lang="fr" xmltv_id="AnimalPlanetCanada.ca" site_id="animal/ANPL">Animal Planet</channel>
<channel lang="fr" xmltv_id="AnimalPlanetHDCanada.ca" site_id="animal/APLA">Animal Planet HD</channel>
<channel lang="fr" xmltv_id="APTNE.ca" site_id="aptn/APTN">Aboriginal Peoples Television Network</channel>
<channel lang="fr" xmltv_id="APTNHD.ca" site_id="aptn/APTHD">APTN HD</channel>
<channel lang="fr" xmltv_id="ARTAmerica.sa" site_id="art/ART">Art America</channel>
<channel lang="fr" xmltv_id="AssembleenationaleduQuebec.ca" site_id="asna/ANQ">Assemblée Nationale</channel>
<channel lang="fr" xmltv_id="ATNChannel.ca" site_id="atn/ASIAN">ASIAN TELEVISION NETWORK</channel>
<channel lang="fr" xmltv_id="AzMundo.mx" site_id="azmu/AZMU">AZ Mundo</channel>
<channel lang="fr" xmltv_id="BBCEarthCanada.ca" site_id="bbce/BBCE">BBC Earth</channel>
<channel lang="fr" xmltv_id="BBCWorldNewsNorthAmerica.uk" site_id="bbcw/BBCW">BBC World</channel>
<channel lang="fr" xmltv_id="beINSportsCanada.ca" site_id="beis/BEIS">Be In Sports</channel>
<channel lang="fr" xmltv_id="beINSportsenEspanol.us" site_id="besp/BESP">BeIN Sports ESP SD</channel>
<channel lang="fr" xmltv_id="beINSportsenEspanolHD.us" site_id="besp/BESP">BeIN Sports ESP HD</channel>
<channel lang="fr" xmltv_id="BETCanada.ca" site_id="bet/BET">BLACK ENTERTAINMENT</channel>
<channel lang="fr" xmltv_id="BNNBloomberg.ca" site_id="bnnb/BNNB">BNN Bloomberg</channel>
<channel lang="fr" xmltv_id="BNNBloombergHD.ca" site_id="bnnb/BNNB">BNN Bloomberg HD</channel>
<channel lang="fr" xmltv_id="CanalD.ca" site_id="d/D">D</channel>
<channel lang="fr" xmltv_id="CanalDHD.ca" site_id="d/D+HD">D HD</channel>
<channel lang="fr" xmltv_id="CanalVie.ca" site_id="vie/VIE">Canal Vie</channel>
<channel lang="fr" xmltv_id="CanalVieHD.ca" site_id="vie/VIEHD">Canal Vie HD</channel>
<channel lang="fr" xmltv_id="CaracolTVInternacional.co" site_id="cara/CARA">Caracol TV</channel>
<channel lang="fr" xmltv_id="CartoonNetworkCanada.ca" site_id="cn/CN">Cartoon Network SD</channel>
<channel lang="fr" xmltv_id="CartoonNetworkHDCanada.ca" site_id="cn/CNHD">Cartoon Network HD</channel>
<channel lang="fr" xmltv_id="Casa.ca" site_id="idee/CASA">CASA</channel>
<channel lang="fr" xmltv_id="CasaHD.ca" site_id="idee/CASAH">CASA HD</channel>
<channel lang="fr" xmltv_id="CBCNewsNetwork.ca" site_id="nw/CBCN">CBC News Network</channel>
<channel lang="fr" xmltv_id="CBCNewsNetworkHD.ca" site_id="nw/CNEHD">CBC News Network HD</channel>
<channel lang="fr" xmltv_id="CBFTDT.ca" site_id="src/CBFT">CBFT</channel>
<channel lang="fr" xmltv_id="CBMTDT.ca" site_id="cbc/CBMT">CBVU-TV</channel>
<channel lang="fr" xmltv_id="CBUFTDT.ca" site_id="src/CBUFT">CBUFT</channel>
<channel lang="fr" xmltv_id="CBUTDT.ca" site_id="cbc/CBUT">CBUT-2</channel>
<channel lang="fr" xmltv_id="CCTV3.cn" site_id="cct3/CCT3">CCT3</channel>
<channel lang="fr" xmltv_id="CCTV4America.cn" site_id="cctv/CCTV">CCTV</channel>
<channel lang="fr" xmltv_id="CFCFDT.ca" site_id="ctv/CFCF">CFCF</channel>
<channel lang="fr" xmltv_id="CFMTDT.ca" site_id="omni/CFMT">Omni 1</channel>
<channel lang="fr" xmltv_id="CFTMDT.ca" site_id="tva/CFTM">CFTM</channel>
<channel lang="fr" xmltv_id="CFTUDT.ca" site_id="sav/CFTU">Savm</channel>
<channel lang="fr" xmltv_id="CHANDT1.ca" site_id="global/CHAN">CHAN</channel>
<channel lang="fr" xmltv_id="CICADT.ca" site_id="tvo/TVO">CICA</channel>
<channel lang="fr" xmltv_id="CIIIDT.ca" site_id="global/CIIIHD">CIII (Hull-Ottawa) HD</channel>
<channel lang="fr" xmltv_id="CineLatino.mx" site_id="cinl/CINEL">Cine Latino</channel>
<channel lang="fr" xmltv_id="Cinepop.ca" site_id="cpop/CPOP">Ciné-pop</channel>
<channel lang="fr" xmltv_id="CinepopHD.ca" site_id="cpop/POPHD">Ciné-pop HD</channel>
<channel lang="fr" xmltv_id="CITYDT.ca" site_id="city/CITY">CITY</channel>
<channel lang="fr" xmltv_id="CIVMDT.ca" site_id="tqc/CIVM">CIVM</channel>
<channel lang="fr" xmltv_id="CIVTDT.ca" site_id="ctv/CIVT">CIVT</channel>
<channel lang="fr" xmltv_id="CJNTDT.ca" site_id="chh/CITYM">CJNT (Metro 14)</channel>
<channel lang="fr" xmltv_id="CJONDT.ca" site_id="ntv/CJON">CJON</channel>
<channel lang="fr" xmltv_id="CKMIDT1.ca" site_id="global/CKMI">CKMI (Montréal)</channel>
<channel lang="fr" xmltv_id="Classica.us" site_id="scla/SCLA">Classica</channel>
<channel lang="fr" xmltv_id="CMTCanada.ca" site_id="cmt/CMT">COUNTRY MUSIC TELEVISION</channel>
<channel lang="fr" xmltv_id="CNBC.us" site_id="cnbc/CNBC">CNBC</channel>
<channel lang="fr" xmltv_id="CNNHD.us" site_id="cnn/CNNHD">CNN HD</channel>
<channel lang="fr" xmltv_id="CNNInternationalNorthAmerica.us" site_id="cnn/CNN">CNN</channel>
<channel lang="fr" xmltv_id="CookingChannelCanada.ca" site_id="cook/COOK">Cooking Channel SD</channel>
<channel lang="fr" xmltv_id="CookingChannelHDCanada.ca" site_id="cook/COOK">Cooking Channel HD</channel>
<channel lang="fr" xmltv_id="CottageLifeTV.ca" site_id="cott/COTT">Cottage Life</channel>
<channel lang="fr" xmltv_id="CPACFrench.ca" site_id="cpac/CPAC">CPAC</channel>
<channel lang="fr" xmltv_id="Crave1.ca" site_id="crv/CRV">Crave 1</channel>
<channel lang="fr" xmltv_id="Crave1HD.ca" site_id="crv/CRV">Crave 1 HD</channel>
<channel lang="fr" xmltv_id="Crave2.ca" site_id="crv/CRV">Crave 2</channel>
<channel lang="fr" xmltv_id="Crave2HD.ca" site_id="crv/CRV">Crave 2 HD</channel>
<channel lang="fr" xmltv_id="Crave3.ca" site_id="crv/CRV">Crave 3</channel>
<channel lang="fr" xmltv_id="Crave3HD.ca" site_id="crv/CRV">Crave 3 HD</channel>
<channel lang="fr" xmltv_id="Crave4.ca" site_id="crv/CRV">Crave 4</channel>
<channel lang="fr" xmltv_id="Crave4HD.ca" site_id="crv/CRV">Crave 4 HD</channel>
<channel lang="fr" xmltv_id="CrimePlusInvestigationCanada.ca" site_id="mys/CI">Crime + Investigation</channel>
<channel lang="fr" xmltv_id="CTVComedyChannel.ca" site_id="cmdy/CMDY">CTV Comedy SD</channel>
<channel lang="fr" xmltv_id="CTVComedyChannelHD.ca" site_id="cmdy/CMDY">CTV Comedy HD</channel>
<channel lang="fr" xmltv_id="CTVDramaChannel.ca" site_id="drma/DRMA">CTV Drama SD</channel>
<channel lang="fr" xmltv_id="CTVDramaChannelHD.ca" site_id="drma/DRMA">CTV Drama HD</channel>
<channel lang="fr" xmltv_id="CTVLifeChannel.ca" site_id="clif/CLIF">CTV LIFE SD</channel>
<channel lang="fr" xmltv_id="CTVLifeChannelHD.ca" site_id="clif/CLIF">CTV LIFE HD</channel>
<channel lang="fr" xmltv_id="CTVNewsChannel.ca" site_id="ctvn/NEWSNT">CTVN</channel>
<channel lang="fr" xmltv_id="CTVSciFiChannel.ca" site_id="scfi/SCFI">CTV SCIFI SD</channel>
<channel lang="fr" xmltv_id="CTVSciFiChannelHD.ca" site_id="scfi/SCFI">CTV SCIFI HD</channel>
<channel lang="fr" xmltv_id="DejaView.ca" site_id="deja/DEJA">Déjà View</channel>
<channel lang="fr" xmltv_id="DiscoveryChannelCanada.ca" site_id="tdc/DISC">TDC</channel>
<channel lang="fr" xmltv_id="DiscoveryChannelHDCanada.ca" site_id="tdc/DISCH">Discovery HD</channel>
<channel lang="fr" xmltv_id="DiscoveryScienceCanada.ca" site_id="dciv/DISCC">Discovery Science</channel>
<channel lang="fr" xmltv_id="DiscoveryScienceHDCanada.ca" site_id="dciv/DCIV">Discovery Science HD</channel>
<channel lang="fr" xmltv_id="DiscoveryVelocity.ca" site_id="dvel/DVEL">Discovery Velocity</channel>
<channel lang="fr" xmltv_id="DisneyChannelCanadaEast.ca" site_id="disn/DISN">Disney Channel</channel>
<channel lang="fr" xmltv_id="DisneyChannelHDCanada.ca" site_id="disn/DISN">Disney Channel HD</channel>
<channel lang="fr" xmltv_id="DisneyJuniorCanada.ca" site_id="disj/DISJ">Disney Jr SD</channel>
<channel lang="fr" xmltv_id="DisneyJuniorHDCanada.ca" site_id="disj/DISJ">Disney Jr HD</channel>
<channel lang="fr" xmltv_id="DisneyXDCanada.ca" site_id="disx/DISX">Disney XD SD</channel>
<channel lang="fr" xmltv_id="DisneyXDHDCanada.ca" site_id="disx/DISX">Disney XD HD</channel>
<channel lang="fr" xmltv_id="DocumentaryChannel.ca" site_id="docc/DOC">Documentary Channel</channel>
<channel lang="fr" xmltv_id="DTour.ca" site_id="trop/DTOUR">DTOUR</channel>
<channel lang="fr" xmltv_id="DWEnglish.de" site_id="dw/DWTV">Deutsche Welle</channel>
<channel lang="fr" xmltv_id="ECanada.ca" site_id="star/E">STAR!</channel>
<channel lang="fr" xmltv_id="ElleFictions.ca" site_id="elle/ELLE">Elle Fictions SD</channel>
<channel lang="fr" xmltv_id="ElleFictionsHD.ca" site_id="elle/ELLE">Elle Fictions HD</channel>
<channel lang="fr" xmltv_id="ERTWorldCanada.ca" site_id="ertw/ERTW">ERT World OTN2</channel>
<channel lang="fr" xmltv_id="ESPNClassicCanada.ca" site_id="espc/ESPNC">ESPN classics</channel>
<channel lang="fr" xmltv_id="EuronewsEnglish.fr" site_id="enew/ENEW">Euronews</channel>
<channel lang="fr" xmltv_id="Evasion.ca" site_id="evasion/EVAS">Évasion</channel>
<channel lang="fr" xmltv_id="EvasionHD.ca" site_id="evasion/EVAHD">Évasion HD</channel>
<channel lang="fr" xmltv_id="EWTNCanada.ca" site_id="ewtn/EWTN">EWTN</channel>
<channel lang="fr" xmltv_id="FairchildTV1East.ca" site_id="fair/FAIRCH">FAIR</channel>
<channel lang="fr" xmltv_id="FamilyChannelEast.ca" site_id="fam/FAMILY">FAMILY</channel>
<channel lang="fr" xmltv_id="FamilyChannelHD.ca" site_id="fam/FAM">THE FAMILY CHANNEL HD</channel>
<channel lang="fr" xmltv_id="FamilyJr.ca" site_id="famj/FAMJ">Family Jr SD</channel>
<channel lang="fr" xmltv_id="FamilyJrHD.ca" site_id="famj/FAMJ">Family Jr HD</channel>
<channel lang="fr" xmltv_id="FightNetwork.ca" site_id="figh/FIGHT">Fight Network</channel>
<channel lang="fr" xmltv_id="FightNetworkHD.ca" site_id="figh/FIGH">Fight Network HD</channel>
<channel lang="fr" xmltv_id="FoodNetworkCanada.ca" site_id="food/FOOD">FOOD</channel>
<channel lang="fr" xmltv_id="FoodNetworkHDCanada.ca" site_id="food/FOODH">FOOD HD</channel>
<channel lang="fr" xmltv_id="FoxNewsChannel.us" site_id="foxn/FOXN">FOX Newsworld</channel>
<channel lang="fr" xmltv_id="FoxNewsChannelHD.us" site_id="foxn/FOXN">FOX Newsworld HD</channel>
<channel lang="fr" xmltv_id="FoxSportsRacing.us" site_id="speed/FOXSR">FOX Sports Racing</channel>
<channel lang="fr" xmltv_id="FoxSportsRacingHD.us" site_id="speed/FSRHD">FOX Sports Racing</channel>
<channel lang="fr" xmltv_id="FPTV.ca" site_id="fptv/FPTV">Festival Portuguese Television</channel>
<channel lang="fr" xmltv_id="France24French.fr" site_id="fr24/FR24">France 24</channel>
<channel lang="fr" xmltv_id="FrissonsTV.ca" site_id="fris/FRIS">Frissons TV</channel>
<channel lang="fr" xmltv_id="FXCanada.ca" site_id="fxc/FXC">FX Canada</channel>
<channel lang="fr" xmltv_id="FXHDCanada.ca" site_id="fxc/FXHD">FX Canada HD</channel>
<channel lang="fr" xmltv_id="FXXCanada.ca" site_id="fxx/FXX">FXX SD</channel>
<channel lang="fr" xmltv_id="GameShowNetworkEast.us" site_id="game/GSN">GAME SHOW NETWORK</channel>
<channel lang="fr" xmltv_id="GameTV.ca" site_id="cgtv/GAMETV">GAME TV</channel>
<channel lang="fr" xmltv_id="GinxeSportsTVCanada.ca" site_id="sc4/SC4">Super Channel 4</channel>
<channel lang="fr" xmltv_id="GinxeSportsTVCanadaHD.ca" site_id="sc4/SC4HD">Super Channel 4 HD</channel>
<channel lang="fr" xmltv_id="GolfChannel.us" site_id="golf/GOLF">GOLF</channel>
<channel lang="fr" xmltv_id="GolfChannelHD.us" site_id="golf/GLHD">GOLF HD</channel>
<channel lang="fr" xmltv_id="HaitiHD.us" site_id="hait/HAIT">Haïti HD</channel>
<channel lang="fr" xmltv_id="HBOCanada1.ca" site_id="tmn/HBO">HBO</channel>
<channel lang="fr" xmltv_id="HBOCanada1HD.ca" site_id="tmn/HBOCH">HBO HD</channel>
<channel lang="fr" xmltv_id="HGTVCanada.ca" site_id="hgtv/HGTV">HGTV</channel>
<channel lang="fr" xmltv_id="HGTVHDCanada.ca" site_id="hgtv/HGTVH">HGTV HD</channel>
<channel lang="fr" xmltv_id="Historia.ca" site_id="historia/HISF">Historia</channel>
<channel lang="fr" xmltv_id="HistoriaHD.ca" site_id="historia/HIAHD">Historia HD</channel>
<channel lang="fr" xmltv_id="History2Canada.ca" site_id="ment/H2">H2</channel>
<channel lang="fr" xmltv_id="History2HDCanada.ca" site_id="ment/H2HD">H2 HD</channel>
<channel lang="fr" xmltv_id="HistoryCanadaEast.ca" site_id="hist/HIST">HISTORY</channel>
<channel lang="fr" xmltv_id="HistoryHDCanadaEast.ca" site_id="hist/HIST">History HD</channel>
<channel lang="fr" xmltv_id="HLNHD.us" site_id="cnnh/CNNH">CNN Headline News HD</channel>
<channel lang="fr" xmltv_id="HLNInternational.us" site_id="cnnh/HLN">CNN HEADLINE NEWS</channel>
<channel lang="fr" xmltv_id="IciARTV.ca" site_id="artv/ARTV">Artv</channel>
<channel lang="fr" xmltv_id="IciARTVHD.ca" site_id="artv/ARTHD">Artv HD</channel>
<channel lang="fr" xmltv_id="IciExplora.ca" site_id="expl/EXPLO">Explora</channel>
<channel lang="fr" xmltv_id="IciExploraHD.ca" site_id="expl/EXPHD">Explora HD</channel>
<channel lang="fr" xmltv_id="IciRDI.ca" site_id="rdi/RDI">RDI</channel>
<channel lang="fr" xmltv_id="IciRDIHD.ca" site_id="rdi/RDIHD">RDI HD</channel>
<channel lang="fr" xmltv_id="Investigation.ca" site_id="inve/INVE">Investigation</channel>
<channel lang="fr" xmltv_id="InvestigationDiscoveryCanada.ca" site_id="cour/ID">Investigation Discovery Canada</channel>
<channel lang="fr" xmltv_id="InvestigationDiscoveryHDCanada.ca" site_id="cour/IDHD">Investigation Discovery Canada HD</channel>
<channel lang="fr" xmltv_id="InvestigationHD.ca" site_id="inve/INVE">Investigation HD</channel>
<channel lang="fr" xmltv_id="KCPQDT1.us" site_id="fox/KCPQ">KCPQ</channel>
<channel lang="fr" xmltv_id="KINGDT1.us" site_id="nbc/KING">KING</channel>
<channel lang="fr" xmltv_id="KIRODT1.us" site_id="cbs/KIRO">KIRO</channel>
<channel lang="fr" xmltv_id="KOMODT1.us" site_id="abc/KOMO">KOMO</channel>
<channel lang="fr" xmltv_id="KTLADT1.us" site_id="cw/KTLA">KTLA</channel>
<channel lang="fr" xmltv_id="KTLAHD.us" site_id="cw/CW">KTLA HD</channel>
<channel lang="fr" xmltv_id="LaChaineDisney.ca" site_id="disf/DISF">La chaîne Disney</channel>
<channel lang="fr" xmltv_id="LaChaineDisneyHD.ca" site_id="disf/DISF">La chaîne Disney HD</channel>
<channel lang="fr" xmltv_id="LCN.ca" site_id="lcn/LCN">LCN</channel>
<channel lang="fr" xmltv_id="LCNHD.ca" site_id="lcn/LCN+HD">LCN HD</channel>
<channel lang="fr" xmltv_id="LifetimeCanada.ca" site_id="ltim/LTIM">LIFETIME SD</channel>
<channel lang="fr" xmltv_id="LifetimeHDCanada.ca" site_id="ltim/LTMH">LIFETIME HD</channel>
<channel lang="fr" xmltv_id="LoveNature.ca" site_id="oash/NATUR">Oasis HD</channel>
<channel lang="fr" xmltv_id="MagnoliaNetworkCanada.ca" site_id="fine/DIY">DIY</channel>
<channel lang="fr" xmltv_id="MAtv.ca" site_id="vox/MATV">MAMTL</channel>
<channel lang="fr" xmltv_id="MAtvHD.ca" site_id="vox/MAHD">MATV HD</channel>
<channel lang="fr" xmltv_id="Max.ca" site_id="mmax/MAX">MAX SD</channel>
<channel lang="fr" xmltv_id="MaxHD.ca" site_id="mmax/MAXHD">MAX HD</channel>
<channel lang="fr" xmltv_id="MBC1USA.ae" site_id="mbc/MBC">MBC (USA)</channel>
<channel lang="fr" xmltv_id="MBCMasr.eg" site_id="mbcm/MBCM">MBCM (Masr)</channel>
<channel lang="fr" xmltv_id="MediasetItaliaCanada.ca" site_id="ita/ITA">Mediaset Italia</channel>
<channel lang="fr" xmltv_id="MeteoMedia.ca" site_id="met/METEO">METEO</channel>
<channel lang="fr" xmltv_id="MeteoMediaHD.ca" site_id="met/MET">MeteoMedia HD</channel>
<channel lang="fr" xmltv_id="Mezzo.fr" site_id="mezz/MEZZ">Mezzo</channel>
<channel lang="fr" xmltv_id="MezzoLiveHD.fr" site_id="mezz/MEZZ">Mezzo HD</channel>
<channel lang="fr" xmltv_id="MLBNetwork.us" site_id="mlbn/MLBN">MLB Network SD</channel>
<channel lang="fr" xmltv_id="MoietCie.ca" site_id="mlle/MOI">MOI ET CIE</channel>
<channel lang="fr" xmltv_id="MoietCieHD.ca" site_id="mlle/MOIHD">MOI ET CIE</channel>
<channel lang="fr" xmltv_id="MovieTime.ca" site_id="lsta/MTIME">MovieTime</channel>
<channel lang="fr" xmltv_id="MovieTimeHD.ca" site_id="lsta/MTIMH">MovieTime HD</channel>
<channel lang="fr" xmltv_id="MSNBCInternational.us" site_id="mnbc/MSNBC">MSNBC</channel>
<channel lang="fr" xmltv_id="MTV2Canada.ca" site_id="raze/MTV2">Razer</channel>
<channel lang="fr" xmltv_id="MTVCanada.ca" site_id="mtvc/MTVC">MTV Canada</channel>
<channel lang="fr" xmltv_id="Much.ca" site_id="mm/MMUSIC">MuchMusic</channel>
<channel lang="fr" xmltv_id="MuchHD.ca" site_id="mm/MUCH+HD">MuchMusic HD</channel>
<channel lang="fr" xmltv_id="NationalGeographicCanada.ca" site_id="nat/NGEO">National Geographic Canada</channel>
<channel lang="fr" xmltv_id="NationalGeographicHDCanada.ca" site_id="nat/GEOHD">National Geographic HD</channel>
<channel lang="fr" xmltv_id="NationalGeographicWildCanada.ca" site_id="nagw/NATGW">National Geographic Wild</channel>
<channel lang="fr" xmltv_id="NationalGeographicWildHDCanada.ca" site_id="nagw/NGWHD">National Geo Wild HD</channel>
<channel lang="fr" xmltv_id="NBATVCanada.ca" site_id="nba/NBATV">NBA TV</channel>
<channel lang="fr" xmltv_id="NBATVHD.us" site_id="nba/NBAHD">NBA TV HD</channel>
<channel lang="fr" xmltv_id="NFLNetwork.us" site_id="nfln/NFL">NFL Network</channel>
<channel lang="fr" xmltv_id="NFLNetworkHD.us" site_id="nfln/NFLHD">NFL HD</channel>
<channel lang="fr" xmltv_id="NickelodeonCanada.ca" site_id="nick/NICK">Nickelodeon</channel>
<channel lang="fr" xmltv_id="Noovo.ca" site_id="v/NVSMT">NVSMT</channel>
<channel lang="fr" xmltv_id="NoovoHD.ca" site_id="v/NOOVHD">NVMT</channel>
<channel lang="fr" xmltv_id="Odyssey.ca" site_id="otn/OTN">OTN</channel>
<channel lang="fr" xmltv_id="OLN.ca" site_id="oln/OLN">OUTDOOR LIFE</channel>
<channel lang="fr" xmltv_id="OprahWinfreyNetworkCanada.ca" site_id="ownh/OWN">OWN Canada</channel>
<channel lang="fr" xmltv_id="OprahWinfreyNetworkHDCanada.ca" site_id="ownh/OWNHD">OWN HD Canada</channel>
<channel lang="fr" xmltv_id="OutTV.ca" site_id="outv/OUTTV">Out TV</channel>
<channel lang="fr" xmltv_id="ParamountNetworkEast.us" site_id="par/PAR">Paramount SD</channel>
<channel lang="fr" xmltv_id="ParamountNetworkHDEast.us" site_id="par/PAR">Paramount HD</channel>
<channel lang="fr" xmltv_id="PlanetePlus.fr" site_id="plan/PLAN">Planète</channel>
<channel lang="fr" xmltv_id="PlanetePlusCanadaHD.fr" site_id="plan/PLAHD">Planète HD</channel>
<channel lang="fr" xmltv_id="PlayboyTV.us" site_id="play/PLAYBO">PLAYBOY</channel>
<channel lang="fr" xmltv_id="PlayboyTVHD.us" site_id="play/PLBHD">PLAYBOY HD</channel>
<channel lang="fr" xmltv_id="PlaymenTV.ca" site_id="hard/PLAYM">Hard</channel>
<channel lang="fr" xmltv_id="Prise2.ca" site_id="prise2/PR2">Prise 2</channel>
<channel lang="fr" xmltv_id="Prise2HD.ca" site_id="prise2/P2HD">Prise 2 HD</channel>
<channel lang="fr" xmltv_id="RaiNews24.it" site_id="rain/RAIN">RAI News</channel>
<channel lang="fr" xmltv_id="RDS.ca" site_id="rds/RDS">RDS</channel>
<channel lang="fr" xmltv_id="RDS2.ca" site_id="rds2/RDS2">RDS2</channel>
<channel lang="fr" xmltv_id="RDS2HD.ca" site_id="rds2/RDS2H">RDS2 HD</channel>
<channel lang="fr" xmltv_id="RDSHD.ca" site_id="rds/RDSHD">RDS HD</channel>
<channel lang="fr" xmltv_id="RDSInfo.ca" site_id="ris/RDSI">RDS Info</channel>
<channel lang="fr" xmltv_id="RDSInfoHD.ca" site_id="ris/RDSIH">RDS Info HD</channel>
<channel lang="fr" xmltv_id="REVTVCanada.ca" site_id="rev/REV">REVT</channel>
<channel lang="fr" xmltv_id="Rewind.ca" site_id="rwd/RWD">Rewind</channel>
<channel lang="fr" xmltv_id="SaintPierreMiquelon1ere.pm" site_id="rfo/SPM1">Saint-Pierre-et-Miquelon</channel>
<channel lang="fr" xmltv_id="SaisonsCanada.ca" site_id="sais/SAIS">Saisons</channel>
<channel lang="fr" xmltv_id="SaltPlusLightTelevision.ca" site_id="salt/SALTL">Salt + Light TV</channel>
<channel lang="fr" xmltv_id="SeriesPlus.ca" site_id="series/SERP">Séries Plus</channel>
<channel lang="fr" xmltv_id="SeriesPlusHD.ca" site_id="series/SEPHD">Séries Plus HD</channel>
<channel lang="fr" xmltv_id="ShowcaseCanada.ca" site_id="show/SHOW">SHOW</channel>
<channel lang="fr" xmltv_id="ShowcaseHDCanada.ca" site_id="show/SHOW+HD">Showcase HD</channel>
<channel lang="fr" xmltv_id="SilverScreenClassics.ca" site_id="ssrc/SSCR">Silver Screen Classics</channel>
<channel lang="fr" xmltv_id="SkyNewsHD.uk" site_id="hsky/HSKY">SkyNews HD</channel>
<channel lang="fr" xmltv_id="SkyNewsInternational.uk" site_id="hsky/HSKY">SkyNews SD</channel>
<channel lang="fr" xmltv_id="Slice.ca" site_id="life/SLICE">Slice</channel>
<channel lang="fr" xmltv_id="SliceHD.ca" site_id="life/SLICE+HD">Slice HD</channel>
<channel lang="fr" xmltv_id="SportsmanChannelCanada.ca" site_id="spmn/SPMN">Sportsman Canada</channel>
<channel lang="fr" xmltv_id="Sportsnet360.ca" site_id="scor/SN360">The Score</channel>
<channel lang="fr" xmltv_id="Sportsnet360HD.ca" site_id="scor/SN360HD">The Score HD</channel>
<channel lang="fr" xmltv_id="SportsnetEast.ca" site_id="snet/RSNE">Sports Net EST</channel>
<channel lang="fr" xmltv_id="SportsnetEastHD.ca" site_id="snet/RSNHD">Sports Net HD</channel>
<channel lang="fr" xmltv_id="SportsnetOne.ca" site_id="snet/SNONE">Sports Net One</channel>
<channel lang="fr" xmltv_id="SportsnetOneHD.ca" site_id="snet/SNOHD">Sports Net One HD</channel>
<channel lang="fr" xmltv_id="SportsnetOntario.ca" site_id="snet/RSNO">Sports Net Ontario</channel>
<channel lang="fr" xmltv_id="SportsnetOntarioHD.ca" site_id="snet/SNET+ONT+H">Sportsnet Ontario HD</channel>
<channel lang="fr" xmltv_id="SportsnetPacific.ca" site_id="snet/RSNP">Sports Net Pacifique</channel>
<channel lang="fr" xmltv_id="SportsnetPacificHD.ca" site_id="snet/SNET+PAC+H">Sports Net Pacifique HD</channel>
<channel lang="fr" xmltv_id="SportsnetWest.ca" site_id="snet/RSNW">Sports Net West</channel>
<channel lang="fr" xmltv_id="SportsnetWestHD.ca" site_id="snet/SNET+WEST+">Sports Net West HD</channel>
<channel lang="fr" xmltv_id="SportsnetWorld.ca" site_id="seta/SNWL">Sportsnet World</channel>
<channel lang="fr" xmltv_id="SportsnetWorldHD.ca" site_id="seta/SNETWORLD+">SNWHD</channel>
<channel lang="fr" xmltv_id="Starz1East.ca" site_id="stz/STZ">STARZ1</channel>
<channel lang="fr" xmltv_id="Starz1HDEast.ca" site_id="stz/STZ">STARZ1 HD</channel>
<channel lang="fr" xmltv_id="Starz2East.ca" site_id="stz/STZ">STARZ2</channel>
<channel lang="fr" xmltv_id="Starz2HDEast.ca" site_id="stz/STZ">STARZ2 HD</channel>
<channel lang="fr" xmltv_id="StingrayVibe.ca" site_id="stvi/STVI">STVI</channel>
<channel lang="fr" xmltv_id="Studiocanal.fr" site_id="stca/STCA">StudioCanal SD</channel>
<channel lang="fr" xmltv_id="StudiocanalHD.fr" site_id="stca/STCA">StudioCanal HD</channel>
<channel lang="fr" xmltv_id="SuperChannelFuse.ca" site_id="sc1/SC1">Super Channel 1</channel>
<channel lang="fr" xmltv_id="SuperChannelFuseHD.ca" site_id="sc1/SC1HD">Super Channel 1 HD</channel>
<channel lang="fr" xmltv_id="SuperChannelHeartHome.ca" site_id="sc2/SC2">Super Channel 2</channel>
<channel lang="fr" xmltv_id="SuperChannelHeartHomeHD.ca" site_id="sc2/SC2HD">Super Channel 2 HD</channel>
<channel lang="fr" xmltv_id="SuperChannelVault.ca" site_id="sc3/SC3">Super Channel 3</channel>
<channel lang="fr" xmltv_id="SuperChannelVaultHD.ca" site_id="sc3/SC3HD">Super Channel 3 HD</channel>
<channel lang="fr" xmltv_id="SuperEcran1.ca" site_id="se/SE">SE</channel>
<channel lang="fr" xmltv_id="SuperEcran1HD.ca" site_id="se/SEHD">SE HD</channel>
<channel lang="fr" xmltv_id="SuperEcran2.ca" site_id="se/SE+2">SE 2</channel>
<channel lang="fr" xmltv_id="SuperEcran2HD.ca" site_id="se/SE2HD">SE 2 HD</channel>
<channel lang="fr" xmltv_id="SuperEcran3.ca" site_id="se/SE+3">SE 3</channel>
<channel lang="fr" xmltv_id="SuperEcran3HD.ca" site_id="se/SE">SE3 HD</channel>
<channel lang="fr" xmltv_id="SuperEcran4.ca" site_id="se/SE+4">SE 4</channel>
<channel lang="fr" xmltv_id="SuperEcran4HD.ca" site_id="se/SE4HD">SE4 HD</channel>
<channel lang="fr" xmltv_id="Telemagino.ca" site_id="mgio/MGIO">Télémagino SD</channel>
<channel lang="fr" xmltv_id="TelemaginoHD.ca" site_id="mgio/MGIO">Télémagino HD</channel>
<channel lang="fr" xmltv_id="TeleNinos.ca" site_id="nino/NINOS">TLN Ninos</channel>
<channel lang="fr" xmltv_id="TeletoonEnglish.ca" site_id="tta/TOONA">TOONA</channel>
<channel lang="fr" xmltv_id="TeletoonFrench.ca" site_id="ttf/TOONF">TOONF</channel>
<channel lang="fr" xmltv_id="TeletoonHDEnglish.ca" site_id="tta/TTA">TOON A HD</channel>
<channel lang="fr" xmltv_id="TeletoonHDFrench.ca" site_id="ttf/TTF">TTF HD</channel>
<channel lang="fr" xmltv_id="TFO.ca" site_id="tfo/TFO">TFO</channel>
<channel lang="fr" xmltv_id="TFOHD.ca" site_id="tfo/TFOHD">TFO HD</channel>
<channel lang="fr" xmltv_id="TGCom24.it" site_id="tg24/TG24">TGCOM 24</channel>
<channel lang="fr" xmltv_id="TheShoppingChannel.ca" site_id="tsc/SHOP">The Shopping Channel</channel>
<channel lang="fr" xmltv_id="TheWeatherNetwork.ca" site_id="wthr/WTHR">WTHR</channel>
<channel lang="fr" xmltv_id="TLCEast.us" site_id="tlc/TLC">TLC</channel>
<channel lang="fr" xmltv_id="TLCHDEast.us" site_id="tlc/TLCH">TLC HD</channel>
<channel lang="fr" xmltv_id="TLN.ca" site_id="lat/TLAT">TLAT</channel>
<channel lang="fr" xmltv_id="TPlusE.ca" site_id="trav/TRAV">Travel &amp; Escape</channel>
<channel lang="fr" xmltv_id="TPlusEHD.ca" site_id="trav/TRAV">Travel &amp; Escape HD</channel>
<channel lang="fr" xmltv_id="TreehouseTV.ca" site_id="tree/TREE">TREE</channel>
<channel lang="fr" xmltv_id="TSN1.ca" site_id="tsn/TSN1">TSN1</channel>
<channel lang="fr" xmltv_id="TSN1HD.ca" site_id="tsn/TSN1H">TSN1 HD</channel>
<channel lang="fr" xmltv_id="TSN2.ca" site_id="tsn/TSN2">TSN2</channel>
<channel lang="fr" xmltv_id="TSN2HD.ca" site_id="tsn/TSN2H">TSN2 HD</channel>
<channel lang="fr" xmltv_id="TSN3.ca" site_id="tsn/TSN3">TSN3</channel>
<channel lang="fr" xmltv_id="TSN3HD.ca" site_id="tsn/TSN3H">TSN3 HD</channel>
<channel lang="fr" xmltv_id="TSN4.ca" site_id="tsn/TSN4">TSN4</channel>
<channel lang="fr" xmltv_id="TSN4HD.ca" site_id="tsn/TSN4H">TSN4 HD</channel>
<channel lang="fr" xmltv_id="TSN5.ca" site_id="tsn/TSN5">TSN (5)</channel>
<channel lang="fr" xmltv_id="TSN5HD.ca" site_id="tsn/TSN5H">TSN HD (5)</channel>
<channel lang="fr" xmltv_id="TurnerClassicMoviesCanada.ca" site_id="tcmv/TCM1">Turner Classic Movie 1</channel>
<channel lang="fr" xmltv_id="TurnerClassicMoviesHDCanada.ca" site_id="tcmv/TCMV">TCM HD</channel>
<channel lang="fr" xmltv_id="TV5QuebecCanada.ca" site_id="tv5/TV5">TV5</channel>
<channel lang="fr" xmltv_id="TV5QuebecCanadaHD.ca" site_id="tv5/TV5HD">TV5 HD</channel>
<channel lang="fr" xmltv_id="TVASports.ca" site_id="tvas/TVASP">TVA Sports</channel>
<channel lang="fr" xmltv_id="TVASports2.ca" site_id="tvs2/TVS2">TVA Sports 2</channel>
<channel lang="fr" xmltv_id="TVASports2HD.ca" site_id="tvs2/TVS2">TVA Sports 2 HD</channel>
<channel lang="fr" xmltv_id="TVASportsHD.ca" site_id="tvas/TSPHD">TVA Sports HD</channel>
<channel lang="fr" xmltv_id="TVChile.cl" site_id="tvch/CHILE">Tv Chile international</channel>
<channel lang="fr" xmltv_id="TVEInternacionalAmerica.es" site_id="tve/TVE">TVE1</channel>
<channel lang="fr" xmltv_id="UniNettunoUniversityTV.it" site_id="rnsu/RAI">RAI Nettuno Sat Uno</channel>
<channel lang="fr" xmltv_id="Unis.ca" site_id="unis/UNIS">UNIS</channel>
<channel lang="fr" xmltv_id="UnisHD.ca" site_id="unis/UNIS">UNIS HD</channel>
<channel lang="fr" xmltv_id="UnivisionCanada.ca" site_id="unic/UNIC">Univision Canada</channel>
<channel lang="fr" xmltv_id="VisionTV.ca" site_id="vtv/VISION">VISION</channel>
<channel lang="fr" xmltv_id="Vrak.ca" site_id="vrak/VRAK">Vrak TV</channel>
<channel lang="fr" xmltv_id="VrakHD.ca" site_id="vrak/VRKHD">Vrak HD</channel>
<channel lang="fr" xmltv_id="WCAXDT1.us" site_id="cbs/WCAX">WCAX</channel>
<channel lang="fr" xmltv_id="WCFEDT1.us" site_id="pbs/WCFE">WCFE</channel>
<channel lang="fr" xmltv_id="WETKDT1.us" site_id="pbs/WETK">WETK</channel>
<channel lang="fr" xmltv_id="WETKHD.us" site_id="pbs/PBS">WETK HD</channel>
<channel lang="fr" xmltv_id="WFFFDT1.us" site_id="fox/WFFFH">WFFF</channel>
<channel lang="fr" xmltv_id="WGNDT1.us" site_id="wgn9/WGN">WGN TV 9</channel>
<channel lang="fr" xmltv_id="WGNHD.us" site_id="wgn9/WGN9">WGN9 HD</channel>
<channel lang="fr" xmltv_id="WildBrainTV.ca" site_id="chgd/CHGD">CHRGD SD</channel>
<channel lang="fr" xmltv_id="WildBrainTVHD.ca" site_id="chgd/CHGD">CHRGD HD</channel>
<channel lang="fr" xmltv_id="WildTV.ca" site_id="wild/WILD">Wild</channel>
<channel lang="fr" xmltv_id="WNetwork.ca" site_id="wtn/WTN">WTN</channel>
<channel lang="fr" xmltv_id="WNetworkHDEast.ca" site_id="wtn/WTN">W Network HD</channel>
<channel lang="fr" xmltv_id="WPCHHD.us" site_id="wpch/WPCH">Peachtree HD</channel>
<channel lang="fr" xmltv_id="WPCHTV1.us" site_id="wpch/PEACH">WPCH-TV</channel>
<channel lang="fr" xmltv_id="WPIXDT1.us" site_id="wpix/WPIX">WPIX</channel>
<channel lang="fr" xmltv_id="WPIXHD.us" site_id="wpix/WPIX">WPIX HD</channel>
<channel lang="fr" xmltv_id="WPTZDT1.us" site_id="nbc/WPTZ">WPTZ</channel>
<channel lang="fr" xmltv_id="WSBKDT1.us" site_id="wsbk/WSBK">WSBK</channel>
<channel lang="fr" xmltv_id="WSBKHD.us" site_id="wsbk/WSBK">WSBK HD</channel>
<channel lang="fr" xmltv_id="WVNYDT1.us" site_id="abc/WVNYH">WVNDT</channel>
<channel lang="fr" xmltv_id="WWENetworkCanada.ca" site_id="wwe/WWE">WWE</channel>
<channel lang="fr" xmltv_id="WWENetworkHDCanada.ca" site_id="wwe/WWE">WWE HD</channel>
<channel lang="fr" xmltv_id="Yoopa.ca" site_id="yoo/YOOPA">YOOPA</channel>
<channel lang="fr" xmltv_id="YoopaHD.ca" site_id="yoo/YOOHD">YOOPA HD</channel>
<channel lang="fr" xmltv_id="YTVEast.ca" site_id="ytv/YTV">YTV</channel>
<channel lang="fr" xmltv_id="YTVHD.ca" site_id="ytv/YTV+HD">YTV HD</channel>
<channel lang="fr" xmltv_id="Z.ca" site_id="ztele/Z">Z</channel>
<channel lang="fr" xmltv_id="Zeste.ca" site_id="zest/ZESTE">Zeste</channel>
<channel lang="fr" xmltv_id="ZesteHD.ca" site_id="zest/ZESHD">Zeste HD</channel>
<channel lang="fr" xmltv_id="ZHD.ca" site_id="ztele/Z+HD">Z HD</channel>
</channels>
</site>