Fermeture de TheoraSea

2010-05-24

J'ai décidé de fermer le service pour plusieurs raisons :

  1. le manque de temps
  2. le faible service rendu
  3. et les nombreux défauts inhérents à Pligg : la sécurité (fatigué d'appliquer des rustines à droite à gauche), les spammeurs et autre agence de seo qui en font leur cible privilégiée bien qu'il ne s'agisse pas d'un digg-like (obligé de faire du ménage sans arrêt), la gestion de l'internationalisation (chaque rustine doit s'appliquer 4 fois... et les traductions sont éparpillées n'importe comment)
En revanche, le lecteur public et le générateur de code resteront actif quelques temps.

Merci à tout ceux qui ont contribué au site.

Nouvelle version 2.2

2010-03-23

Avant de changer (et nettoyer) en profondeur ITheora, il y avait pas mal de rustines à poser.

Tout d'abord, j'ai corrigé la fonction qui collecte les données relatives à la vidéo (image, sous-titres, flv, hd, torrent, etc) pour qu'il n'y ait plus d'erreur de log en local (si vous voulez afficher une vidéo hébergée ailleurs, vous continuerez de polluer les logs de celui qui héberge la vidéo... en attendant la version 3).

Pas mal de notices ont été corrigées.

Le carrousel pour les playlists/podcasts sur la page "link" à été modifié (passage de mootools à jquery, en prévision de la version 3) et il est accessible (sans javascript, on accède aux contenu).

"Permalien" est clicable.

Le skin par défaut a été revu. Il n'y a plus que 6 images à charger au lieux des 39 qui constituaient les icônes, les boutons et le cadre du player (petit jeu avec les background-position dans la feuille de style). Ce qui fait que le navigateur les charges beaucoup plus vite et les mets en cache. Visuellement ça se ressent.

La page index du player, lorsqu'il n'y a pas de paramètre "v" passé, charge le permalien du podcast local par défaut. C'est plus engageant comme première approche

Les traductions espagnole et allemande sont incluses

Mise à jour de cortado (version 0.6 avec l'applet signée officielle) et mise à jour du lecteur flash (de normal à maxi parce que la version normal n'était plus maintenue à jour)

J'ai rien touché à la partie admin à part les liens vers l'ancien site.

J'ai ajouté le fichier .htaccess qui indique au serveur de considérer les ogv comme des vidéos. Il est à la racine

Pour la mise à jour:

  • décompressez l'archive
  • supprimez le dossier "admin/config" (pour pouvoir conserver votre configuration actuelle)
  • supprimez le dossier "lib/scroll" et le dossier "skins/defaut" de votre ancienne version (sur votre serveur)
  • avant d'uploader le dossier itheora sur votre serveur

Refonte du site

2010-02-26

Migration des pages statiques vers Drupal la semaine dernière.
Pour créer et gérer un site multilingue, Drupal c'est vraiment bien foutu.

Cette nuit, migration du forum (FluxBB > PhpBB2 > PhpBB3 > Drupal). Bon, il va falloir renouveler tout les mots de passe, mais le but c'est surtout de pouvoir avoir un unique compte pour accéder à la partie développement et au forum (et pour moi, de mettre plus facilement à jour la doc).
Drupal ne m'est pas encore très familier donc ça prendra un peu de temps avant que la partie développement devienne vraiment collaborative... surtout que la refonte complète d'ITheora est en cours et ça passe en priorité. Wink

Nouveautés autour d'ITheora

2009-04-29

Rien depuis plus de 3 mois mais ça va venir... ;) (rien à part la migration du site et la création d'un wiki pour le développement et pour les traductions)
En revanche :

  • Mischamajskij a sorti une nouvelle version du skin Tango et c'est vraiment bien foutu !
  • Sigarzil a traduit la version 2 en espagnol.
  • Hoshpak celle en allemand et a permis la création du portail de.theorasea.org
  • et sd a créé un patch pour un affichage des playlists différents

Merci beaucoup à vous 4.

Nouvelle version 2.1

2009-01-7

Les bugs de la version 2 étant relativement minimes, j'ai préféré attendre un peu avant de faire la mise à jour.

J'ai ajouté la possibilité de désactiver les "téléchargements alternatifs" notamment pour free. Leur chargement est également amélioré (préchargé avant le clic sur le bouton download).
J'ai remis la détection des fichiers locaux qui ne fonctionnait plus avec certains hébergeurs qui désactivent la fonction fopen().
Un fichier index.html rend le dossier cache invisible de l'extérieur au cas où ça ne serait pas déjà le cas.
J'ai modifié la gestion de la langue pour que les phrases non traduites soit affichées en anglais. La traduction italienne a été ajouté à l'archive.
Le fichier "lib/fonctionxml.php" est intégré dans le fichier "lib/fonctions.php" donc vous pouvez le supprimer lors de la mise à jour.

Le module flash est intégré par défaut. L'utilisation du lecteur flash est privilégiée sur l'utilisation de Cortado lorsque c'est possible, mais la balise vidéo ou le plugin du navigateur reste toujours prioritaire. C'est principalement pour assurer un meilleur support pour Internet Explorer vu que sur Firefox 3.1 la balise vidéo rendra l'utilisation d'ITheora beaucoup plus simple. (Sur la 2.0 avec IE la lecture en flash ne fonctionnait pas et personne ne me l'a dit Hmm )

Du coup, ITheora est optimisé pour blip.tv. Les vidéos flash sont détectés, les images aussi (notamment dans la fenêtre "Liste de lecture" lorsqu'on utilise le podcast de blip). Le "scroll" du podcast local (podcast qui recense les fichiers d'un répertoire du serveur où est installé ITheora par date de modification), qui apparaît en bas du "permalien", affiche les 21 premières vidéos du podcast utilisateur de blip.
J'ai aussi intégré la détection des images pour les vidéos de wikimédia.

Démonstration avec le Framatube

Le skin par défaut est modernisé grâce au talent de mischamajskij et à l'aimable autorisation de Cinzia pour l'utilisation de l'image qui a servi comme source au fichier null.jpg (qui reste sous licence GPL en l'état).

Pas de modification sur la partie administration. Les skins restent compatibles.

Nouveaux problèmes chez Free

2008-11-29

Rhaaah quelle bande de mauvais chez free...
Ils ont mis en place un contrôle du nombre de connexions successives sur un fichier ou sur un même dossier.
Du coup, si on a plus de 5 vidéos dans la page on a ce message :

Nous avons détécté que votre adresse IP ouvrait trop de connexions vers notre serveur web.
Nous vous rappelons que ces pratiques sont strictement inutile et n'ont pour unique conséquence de ralentir les serveurs.

Dans le même esprit, il est interdit de faire plus de 15 fopen successifs pour vérifier s'il existe un fichier de sous-titre ou un fichier doublé. Ça s'arrête avec un super message d'erreur... :-C (free n'aime pas les portugais ?)
Problème aussi avec les listes de lecture, un coup ça marche, un coup ça ne marche pas, mais ça ne date pas d'hier. C'est probablement lier au fopen (encore) sur les fichiers xml qu'ils n'aiment pas. Du coup, mon jukebox est mort jusqu'à ce qu'ils le ressuscite à nouveau.

Autre problème aussi, Free interdit le chmod pour changer les droits sur les fichiers de config (mais a priori ça ne pose pas trop de problème de les laisser en 644)...

Enfin, il faut créer un dossier "sessions" à la racine pour permettre l'utilisation des listes de lecture. Ça n'est pas vraiment un problème, mais par effet d'accumulation... ce qu'ils sont chiants !

Nouvelle version : ITheora 2.0

2008-11-27

Beaucoup de nouveautés dont un vrai "espace d'administration"

Le lecteur

Concernant le lecteur à proprement parler, côté coulisse le code est découpé pour plus de malléabilité et il y a maintenant un peu d'ajax (j'ai découvert les rudiments en faisant le widget Radio Dogmazic).

Chaque "fenêtre" a été améliorée :
- pour Télécharger, j'ai ajouté la possibilité de télécharger des sous-titres (*.lg.srt ou *.lg.sub), un fichier HD (*.hd.ogx), des fichiers doublés ou avec sous-titres incrustés (*.lg.ogx). (" * " = nom du fichier , "lg" = langue utilisée, fr par exemple).
- pour Partager, au code HTML habituel j'ai ajouté l'adresse du "Permalien", un bouton "Envoyer par Email" et j'ai remplacé le bouton pour soumettre la vidéo (et voter) sur TheoraSea par un bouton avec l'œil du logo.
- pour Options, il est possible d'ajouter dans le menu Outils les fonctions Télécharger, Partager et Plein Ecran et de les supprimer de la barre (ça se définit dans l'habillage) ce qui permet d'avoir un habillage minimaliste. Dans le menu Autres modes de de lecture, j'ai ajouté la possibilité de lire la vidéo en local avec une playlist XSPF comme on le ferait avec une playlist M3U sur une suggestion de freechelmi (http://wireless-fr.org).
- pour Liste de Lecture, les outils pour télécharger et partager sont intégrés en bas de la fenêtre pour y accéder plus facilement. En mode XSPF, il est possible de télécharger directement (sans clic-droit) la playlist, le partage est sensiblement le même que pour les vidéos. En mode Podcast, pas de téléchargement, mais il y a un lien vers le flux et un lien pour s'abonner au flux avec Miro.
J'ai modifié aussi l'affichage des aperçus (vignettes ou pochettes d'album) pour que ça ne déborde pas de la fenêtre de manière anarchique.
Les urls avec paramètres peuvent être lues à condition qu'il n'y ai pas un paramètre en conflit avec ceux utilisés par ITheora et qu'il n'y ai pas de caractères spéciaux. (en coulisse, il y a un coup d'ajax côté client pour charger la playlist et la mémoriser quand on clique sur un autre bouton et une session php côté serveur pour mémoriser la playlist quand on change de morceau.)
- le message d'Erreur est à présent intégré à la fenêtre et contient un mini-formulaire pour taper l'adresse d'une autre vidéo (un %u0153uf de Pâques y est caché mais c'est un %u0153uf utile Wink ).
- pour Play, la vidéo à lire se fait en fonction de la langue si elle est disponible.

La détection du titre de la vidéo est automatique. Le deuxième clic sur un bouton permet de revenir à la fenêtre Stop, suggestion de joan (http://www.kinovea.org)

Le lecteur ne tourne plus à vide (en voulant le redimensionner) quand il est masqué (en CSS avec "visibility : hidden") (Le redimensionnement ne fonctionne toujours pas "correctement" sur Konqueror. Je l'ai donc désactivé, mais il est possible de l'activer en configurant Konqueror pour qu'il n'envoie pas l'identification du navigateur.

Sous le capot, il y a la dernière version de la class.ogg.php de Nicolas qui permet d'extraire une image au milieu de la vidéo et de la mettre en cache. Ça fonctionne uniquement si les librairies ffmpeg et gd pour php sont installées sur le serveur.

Le lecteur possède trois sorties possibles : le mode normal (sans paramètre) ; le mode xml pour exporter les données essentielles de la vidéo (adresse, titre, auteur, licence, description, durée, taille, image, torrent...) pour TheoraSea entre autre ; le mode permalien (?v=video.ogv&out=link) qui permet d'afficher la vidéo dans sa taille d'origine proprement au centre de la page avec gros titre et menu déroulant horizontal du podcast local s'il y en a un. L'avantage c'est qu'on peut copier le lien vers la vidéo dans un forum, un commentaire de blog, etc (tout espace où l'HTML est désactivé) sans voir la vidéo occuper toute la fenêtre quand on clique dessus.

Le podcast local c'est simplement un flux rss qui se génère en fonction du contenu d'un dossier (podcast.php?dir=chemin_du_dossier) par ordre chronologique de création. Le menu déroulant horizontal, c'est la playlist qui est affichée (en mode permalien pour le moment) avec les images des vidéos seulement (fonctionne aussi pour les XSPF mais ça ne sert pas encore) c'est similaire à ce qu'on trouve sur d'autres sites de vidéo bien connus Wink ou au skin jukebox.

Il est possible de masquer la durée de la vidéo (dans la barre de titre) et de l'afficher séparément dans la barre d'outil du lecteur (à voir dans l'habillage), de même pour le titre qui peut être placé en dehors de l'espace de la vidéo ce qui permet de ne plus avoir de problème d'affichage du titre en arrière plan sous IE notamment. suggestion de mischamajskij.

Espace d'administration

Quatres outils :
- le générateur de code, pas de changement majeur, juste un code coloré pour bien montrer le code "propre" en vert foncé et le code "sale" réservé à ce stupide Microsoft Internet Explorer en jaune caca d'oie (parce qu'il le vaut bien Big smile ).
- le générateur de playlist, permet de créer rapidement une liste de lecture XSPF sans se prendre la tête avec les tags xml. Même si je ne suis pas objectif vu que c'est moi qui l'ai fait, je peux dire que c'est vraiment pratique, notamment pour la conversion de la durée en microseconde.
- un éditeur de tags, celui là c'est Nicolas qui l'a fait, mais je peux aussi dire que c'est vraiment pratique Wink pour tout ce qui concerne les problèmes d'encodage des caractères et plus généralement pour ne pas avoir à rapatrier le fichier quand il faut corriger une faute d'orthographe dans le titre ou la description (c'est ce qui justifie le fait d'avoir ajouté la détection auto du titre de la vidéo dans le lecteur).
- un gestionnaire d'upload, alors ça, ça fait un moment que je cherche une solution potable, c'est pas évident... ça passe par une applet java (ZUpload) en mode FTP pour contourner les limitations imposés par certains hébergeurs (php.ini en mode HTML), pas par du php parce qu'il faudrait activer la librairie ftp... bref, l'applet java c'est un bon compromis (chez free.fr, ça ne marche pas chez moi mais d'autres m'ont dit que oui). L'upload n'est possible que sur le site où est installé ITheora et par défaut les données sont placées dans le dossier "data"

Gestion de la configuration :
- la configuration du lecteur permet d'activer ou désactiver certains éléments définitivement (plus par la suppression des fichiers .png associés). Les paramètres "d=?" fonctionnent toujours et pour la désactivation par les skins, il suffit de mettre un "display : none" dans la feuille de style pour masquer l'élément gênant. Les images peuvent être des .gif (ou des .apng) ce qui permet d'animer un peu plus le lecteur si on le souhaite (moi, j'aime pas les gif Sad ).
On peut aussi changer le titre "ITheora, I really broadcast myself" pour mettre ce qu'on veut.
Enfin, c'est là que se gèrent les listes noire et blanche. Par défaut la liste noire (par domaine et mot clé) est prioritaire sur la liste blanche (par domaine). Vous pouvez n'autoriser que "blip.tv" dans la liste blanche par exemple et bloquer toutes les vidéos de "JosephK" dans la liste noire si vous avez peur que j'utilise votre lecteur de manière abusive.

- la configuration de l'espace d'administration sert à modifier les paramètres de connexion (par défaut : admin / admin) et les paramètres FTP du gestionnaire d'upload.

L'accès évidemment est sécurisé, les pages appelées ne peuvent être chargées que par l'inclusion dans le fichier admin/index.php donc pas la peine d'essayer de passer par admin/pages/tags.php par exemple.

Actuellement, les habillages et les traductions ne sont pas encore à jour, la doc pour l'installation non plus.
Pour l'installation peu de choses changent, il faut juste modifier les droits sur les fichiers "admin/config/admin.php" et "admin/config/player.php" en 600 (lecture et écriture que pour l'utilisateur) et changer les identifiant/mot de passe par défaut (admin/admin).

Sinon, le site est légèrement relooké et j'ai découpé la page de démo en deux pour mettre en évidence les compatibilités en fonction des différents systèmes d'exploitation, navigateurs web et lecteurs multimédia : Captures et compatibilités (le but étant aussi de décrire quels sont les patch nécessaires lorsqu'on a une configuration un peu subtile)

Nouvelle version 1.2 (de fainéant)

2008-09-7

L'archive contient des versions de Cortado mises à jour en fonction des travaux des développeurs de wikimedia (il était temps mais on ne savait pas qu'ils avaient bossé dessus). Ces deux nouveaux fichiers permettent de lire les vidéos encodées avec la version 0.21 de ffmpeg2theora (gère le ogg skeleton), ils sont plus légers donc plus rapides à charger et entraînent moins de plantages violent. Le fichier cortado_url.jar est signé "ITheora" (et non plus par mon nom, nettement plus cohérent pour que le visiteur ait confiance) mais le certificat conserve une durée de vie de 6 mois.

J'ai aussi corrigé vite fait les bugs sur le skin par défaut au niveau de l'affichage "audio" (titre en superposition et code partagé trop bas)

Nouvelle version 1.1

2008-06-9

Dans la liste des nouveautés : le support des .ogv, vu que c'est l'extension recommandée pour les vidéos par la fondation Xiph et qu'il commence a y avoir pas mal d'encodeur qui le supportent

La classe php ogg de Nicolas a été ajoutée. Elle permet d'extraire la durée, les tags et la taille de la vidéo. C'est le même fichier qui était utilisé précédement, mais il est grandement amélioré : il va beaucoup plus vite et fonctionne sur des fichiers distants (si l'hébergeur le permet, ne marche pas sur Wikimédia par exemple)

Un remaniement a été fait du côté des skins pour accélérer le chargement lorsqu'on insère plusieurs vidéos de même dimension dans une page (seul le skin par defaut est fonctionnel le reste suivra d'ici peu)

Le player est maintenant redimensionnable "à la volée" dans un affichage de type popup (Options>Détacher le lecteur) ou en plein écran et il s'adapte automatiquement à la taille de l'object (les paramètres w et h sont inutiles bien qu'ils servent au fonctionnement interne du lecteur). Le redimensionnement ne fonctionne pas sur Konqueror qui est le seul à être capricieux, la video s'affiche dans sa taille d'origine (ou a défaut si elle n'a pas pu être détectée en 320x240)

Le code de partage a été modifié pour être 100% valide et 100% compatible (cf précédent billet)

La gestion des images d'aperçu est intégrée pour les podcasts

La mise en cache côté serveur de l'adresse de l'image et de l'adresse du torrent pour accélérer le chargement pour les vidéos distantes

ITheora est (enfin) validé en Xhtml Strict par le W3C (mais ça ne signifie pas grand chose puisqu'il y a du code qui n'est pas lu)

Pour IE il est possible de lire les vidéos avec Windows Media Player, Real Player et VLC (à voir dans les Options uniquement). Avec VLC il n'y a que le son et je ne trouve pas pourquoi

Pour Safari, l'ordre de lecture a été modifié pour privilégie Cortado étant donné qu'Apple, dans la dernière version, a décidé que les vidéos ne seraient lue que par Quicktime (la lecture via VLC n'est plus possible) et qu'en plus, il faut installer le patch de Xiph.org pour que Quicktime lise les ogg/ogv puisqu'ils ne l'intègrent pas nativement.

Pour finir, il est possible d'insérer ITheora directement par inclusion php (localement évidemment) :

Code :
<?php $par="v=data/video.ogv&s=defaut&n=Big Buck Bunny, etc"
include($itheora="index.php") ?>
(ajouter "$itheora_code=true" pour n'avoir que le code source d'insertion)

Ce qui simplifie grandement l'intégration dans différents modules pour CMS (utilisé pour SPIP et pour le générateur de code par exemple)

A venir (tout ce qui n'a pas été fait par manque de temps), une interface d'administration plus complète qui permettra de gérer les urls par liste noire (en cas d'utilisation par un tiers), l'upload des vidéos sur les hébergeurs le permettant, un éditeur de tags (déjà écrit par Nicolas, mais demande à être internationalisé) et évidemment le générateur de code (le tout ne sera accessible que de manière privée).
Concernant le lecteur, il faut que j'améliore la gestion des playlistes/podcasts pour les mettre en cache côté serveur afin d'accéler leur chargement et que j'ajoute une gestion des sous-titres : rien de vraiment satisfaisant puisqu'il est impossible d'incruster un .srt à la lecture, mais juste permettre de les télécharger facilement (dans la fenêtre download probablement), dans le même ordre d'idée permettre pour un même fichier .ogv de détecter automatiquement s'il existe une version .fr.ogv (adaptée en fonction de la langue préférée du visiteur) et de proposer une liste (dans les Options probablement) des langues disponibles.

Mise à jour du site

2008-05-8

Bon avant de m'atteler aux prochaines mises à jour sur ITheora, j'ai fait pas mal de nettoyage sur le site :
- plus de bugs d'affichage (sauf si on est toujours adepte de Mammon)
- toutes les pages sont valides XHTML 1.0 Strict *
- supression de quelques fichiers php inutiles
- possibilité de choisir manuellement la langue (voir en pied de page)
- encodage en UTF-8

* J'ai modifié le code officiel d'insertion d'ITheora. Il est valide quelque soit le doctype de la page :

Code :
<object data="http://votre_site.org/itheora/index.php?v=exemple.ogg&t=4&w=340&h=280" type="application/xhtml+xml" style="width: 340px; height: 280px;">
<!--[if IE]>
<iframe src="http://votre_site.org/itheora/index.php?v=exemple.ogg&t=4&w=340&h=280" style="width:340px; height:280px;" allowtransparency="true" frameborder="0" ></iframe>
<![endif]-->
</object>

On triche un peu puisqu'on utilise la balise iframe pour IE mais uniquement pour lui (la balise iframe n'est pas valide en XHTML Strict mais entourée des balises de commentaire [if IE] ça ne pose plus de problème). IE reconnait les balises object (type="text/html") mais il n'affiche rien si l'objet n'est pas sur le même domaine. Pour que ça fonctionne, il faut remplacer type="text/html" par type="application/xhtml+xml" dans la balise object pour que IE (incompétent comme il est) ne reconnaisse plus cette balise et lise le contenu alternatif (c'est à dire l'iframe)
Résultat : le code reste assez simple, il est valide et compatible avec 100% des navigateurs même les plus mauvais.

Syndicate content