Développement

Roadmap

  • use video tag with cross-scripting
  • use jQuery and make the player re-sizable on the page
  • relative data will be detected only once by php
  • make all the relative data in cache but in ".xml" files instead of ".cache".
    Admin should have the possibility to edit this files and restart detection
  • Skin should be written in XSL. It would be easier to change for the users
  • display subtitles in real time (like this or maybe with jquery.srt)
  • improve the "link" output (more youtube-like but not multi-user yet)

2 codes but only one for sharing

Sharing code

Video and audio tags. Playlists should be given as "src" too.
The code will be like this :

<script type="text/javascript" src="http://[your_site]/itheora/?s=[$skin]&d=[$disable]&l=[$lang]"></script>
<video src="http://[adress_of_the_video].ogv" poster="[$picture]" style="width : [$wvid]; height : [$hvid]" ></video>

Parameters [$xxx] will be optionals and name, torrent, flash will not be use because admin can edit the .xml file

Only interesting parameters are $skin and $disable (to disable some options like download, sharing, etc)

For accessibility, a link could be set in fall-back.


W3C validity

Maybe it won't be useful but it will work with all browser (accessible too) and pass the validation. So like previously but with "a" tag ("ivideo" or "iaudio") :

<script type="text/javascript" src="http://[your_site]/itheora/?s=[$skin]&d=[$disable]&l=[$lang]"></script>
<a rel="ivideo" src="http://[adress_of_the_video].ogv" style="width : [$wvid]; height : [$hvid]" >poster</a>

img tag is optional. If alt="thumbnail", on click, a "lightbox" will be opened with the player inside (any other value will display the player as usual).

In all these codes, the script line will be optional if there already is a script line in the header of the HTML page.

Tasklist

Make a jQuery bootloader done
Check cross-scripting compatibility

One id (md5) for the script url in order to make each js in charge of it own medias (no conflict of version).
One id for each player (in xml file) in order to use only one version of the js function (of course) and to work only on the called media not on the others.
Style skin must have some prefix like "idef30-[class of the element]" (i = itheora; def = default; 30 = skin version) to not change neither the web page style nor the other players style (other skins or older version of the same skin) Most of the elements must be defined by tags with parent classes to make style attribute as specific as possible.

Remake the detection code and the cache
  • get [duration in sec] in the RSS feed
  • check file_exists before url_exists for lg.srt, hd/hq, lg.ogv
  • archive.org don't have .jpg
  • Remove .sub, just .srt

XML filenames will be the md5 id of the media. An array in an index file will make the correspondence. (It would be possible to "crypt" the url in the video "src" for paranoïaques)

Playlist will be saved in the cache first and downloaded if it asked (admin page).

Podcasts and playlists will be cleaned (ogv/ogg only, so get_first_video() function would never return false) and then put in the cache.

Podcasts will be periodically updated.

XML / XSL

XML Spec (draft).

Skins will have 1 .css and maybe many .xsl files (audio, video, playlist), .xml file will be in the cache folder and html output will be created by the XSLTProcessor class.

Internationalisation

Use .po file for each language. Need to see how php-gettext works...

For subtitles and dubbing (or incrusted subtitles), detection will be done in function of the list of png files (flags of country/language) in default skin. Adding [$lg].png files will increase the detection time (not a lot). Based on the "100 000+ articles" on wikipedia.

Graphical and perf improvements
  • Use only one .png for the player/icons/etc with bg-position in CSS (better display and fastest (put in the cache of the browser))
  • use external jquery (maybe Google) with a local jquery in backup. (by default but admin have the choice)
  • [Accessibility]Remake the playlist scroll (example)
  • "Permalink" clickable
  • all the dogmazic podcasts must work
  • index.php is the local podcast player instead of error.ogv
  • https support ?
  • only 3 buttons with text next (instead of tooltip, text can be hidden in config) : download, share and options
    stop/back button will be replace by a "kill the plugin" button in options
    fullscreen will be removed : browsers or plugins do it better (if it's not, they should)
  • on plugin detection, if information is needed (like xiph patch for safari) add a 4th button with a light
  • replace play error message : "get firefox"
  • text will be reduced at the minimum for an easy translation : icons instead ("other playing modes" for example).
  • minimalist and extensible audio player (like Wordpress player), album playlist (like XSPF Web Music Player) with cover
  • playlist at the bottom of the player with text (and thumbnail onmouseover) or
    at the right with thumbnail (and text onmouseover like tooltip)
  • all windows will be set at the bottom and won't stop the video (resize video or extend player).
Admin tools
  • Create a media manager with cache editor (!= tags editor)
  • "Live" code engine (overview in the same page, chose the code) and submission to TS
  • Auto fill the form to create playlist
  • Check internal links to itheora.org
  • Improve upload page (firefogg ?)
  • Chose your default "data" folder

Ressources