1 Client pour le service web de vidéo sur demande de Radio-Canada
2 ===============================================================
3 Sylvain Fourmanoit <syfou@users.sourceforge.net>
7 Un client permettant l'accès au contenu de la
8 http://www.radio-canada.ca/audio-video/[zone audio vidéo de la Société
10 http://fr.wikipedia.org/wiki/Code_source_libre[ouverte] et
11 http://fr.wikipedia.org/wiki/Portabilite_%28informatique%29[portable].
15 - http://python.org/[Python] 2.5.0 ou toute version plus récente.
19 - http://radcan.googlepages.com/radcan-{revision}.tar.bz2[Télécharger] le
20 dernier paquetage, ou la version de
21 http://repo.or.cz/w/radcan.git[l'entrepôt] (méthode recommandée).
23 - Utiliser le client tel quel, en invoquant `./radcan`, ou l'intégrer dans
24 votre environnement Python, en utilisant le script distutils fourni
25 (`python setup.py install`): dans ce dernier cas, l'invocation en ligne
26 de commande de `radcan` deviendra généralement accessible à tous les
27 utilisateurs du système.
31 Voir `radcan \--help`, ou le manuel (`radcan.1`) pour le détail. Voici
32 quelques exemples d'utilisation:
34 - Obtenir la liste de toutes les émissions disponibles: `radcan
37 - Obtenir tous les clips des quinzes derniers jours traitant de politique:
38 `radcan \--search=politique \--date-offset=15`.
40 - Obtenir uniquement les liens au premier et au troisième clip de la liste
41 des clips suggérés aujourd'hui: `radcan \--suggested \--asx
44 - Obtenir tous les téléjournaux nationaux (émission #1656) récents: `radcan
47 Questions et remarques fréquentes
48 ---------------------------------
50 La zone audio vidéo de Radio-Canada marche très bien: quel est l'intérêt?
51 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
52 - Ne pas avoir à transférer 400 KB à chaque fois qu'on réactualise la page
53 principale de la zone, et 200 KB pour la console: mais seulement environ
54 30 KB pour une requête typique... C'est d'autant plus pratique que
55 souvent, les requêtes échouent ou n'aboutissent pas, surtout en heure de
58 - Interroger Radio-canada sur son contenu audio-vidéo significativement
59 plus rapidement, et avec une demande en ressources nettement plus faible
60 que par le site: ce client tourne correctement sur un Pentium original
61 avec 32 MB de mémoire vive.
63 - Interroger Radio-canada quant à son contenu audio-vidéo sur toute
64 plate-forme supportant Python, ce qui rejoint beaucoup plus d'utilisateurs
67 - Ne pas dépendre de Flash, une composante logicielle fermée et
68 propriétaire, pour avoir accès à ce fantastique service de Radio-Canada.
70 - Avoir la possibilité de scripter l'accès au contenu Radio-Canadien: le
71 téléchargement d'un clip audio donné sur une tâche périodique (cronjob)
72 devient possible: c'est l'équivalent d'avoir la balladodiffusion générale
73 pour tout Radio-Canada!
75 Vous privez Radio-Canada de précieux revenus publicitaires!
76 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
77 C'est faux. Au moment d'écrire ces lignes, le site lui-même ne diffuse
78 aucune publicité directement: certains clips vidéo contiennent des
79 publicités, et ce client n'y change absolument rien.
81 En fait, sur une base strictement économique, l'utilisation de ce client
82 par un usager devrait être marginalement plus rentable pour Radio-Canada
83 que l'utilisation du site, puisqu'il diminue significativement le besoin en
84 bande passante lors de la phase de recherche tout en ne modifiant pas la
85 quantité de publicité à laquelle ceux-ci seront exposés lors de leur
88 Ce client ne renvoie que des liens aux clips: comment suis-je sensé les lire?
89 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
90 Ce client renvoie des liens à des fichiers
91 http://fr.wikipedia.org/wiki/ASX_%28format%29[ASX], qui "pointent" à une ou
92 plusieurs sources http://fr.wikipedia.org/wiki/Windows_Media_Video[WMV], toutes
93 en WMV3. La librairie http://ffmpeg.mplayerhq.hu/[FFMPEG] contient un décodeur
94 libre (module VC-1) qui lit très correctement l'ensemble des flots de
97 Certaines requêtes ne retournent rien.
98 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
99 Quand une requête ne renvoie rien sans non plus signaler la moindre erreur,
100 cela signifie généralement qu'il n'existe aucune résultat qui corresponde à
101 la requête: par exemple, demander les clips récents d'une émission qui fait
102 relâche, ou qui n'est pas encore mise en ligne dans le nouveau système ne
103 retournera rien, sans non plus générer d'erreur.
105 Il arrive également que Radio-Canada signale à l'occasion qu'il n'existe
106 aucun résultat correspondant à une requête qui devrait être valide: au
107 meilleur de notre compréhension, il s'agit d'une méthode de contrôle de la
108 congestion quant trop de requêtes se télescopent. Soumettre la même
109 requête une seconde fois permet alors habituellement d'obtenir le résultat
112 Ce client ne semble pas retourner les mêmes résultats que le site.
113 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
114 Au meilleur de notre connaissance, ce client renvoie exactement la même
115 information que celle disponible par la zone audio vidéo de Radio-Canada.
116 Gardez à l'esprit que certaines requêtes, tel celles permettant d'avoir les
117 clips suggérés, voient leurs résultats changer très souvent: il est donc
118 tout à fait possible d'obtenir une sortie différente pour la même requête,
119 parfois à quelques secondes d'intervalles.
121 Les résultats ne sont pas constants!
122 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
123 C'est vrai. Voir l'entrée précédente.
125 Pourquoi l'interface est-elle en anglais?
126 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
127 Par souci de portabilité et d'uniformité: sur de nombreux environnements Python,
128 l'aide automatisée emploierait un horrible sabir franco-anglais. La gestion des
129 encodages de caractères n'est pas non plus très uniforme d'une plate-forme à
130 l'autre, et nous désirions éviter les problèmes.
132 Je suis intrigué: comment ça marche?
133 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
134 Allez lire le source. ;-D