02 API · Média · Infrastructure

Charj.it

  • Cloudflare Workers
  • Durable Objects
  • Queues
  • R2
  • D1
  • Workers KV
  • Containers

Une seule API pour la vidéo, quelle que soit la plateforme. Une même clé renvoie vidéo, audio et métadonnées normalisés sous forme de jobs — une intégration au lieu d'un extracteur par source, et une facturation à l'appel plutôt qu'au siège.

Visiter le site
Livré en

Moins d'un jour

Développé, testé et déployé en une seule journée. Un produit au périmètre resserré, sur une stack que nous utilisons tous les jours — c'est cette combinaison qui rend une journée suffisante.

Deux côtés, un seul système

L'appelant

Trois endpoints — vidéo, audio, métadonnées — derrière une seule clé. Les métadonnées répondent directement ; la vidéo et l'audio renvoient un job à suivre. Rien de spécifique à une plateforme n'atteint son code.

La flotte

Elle réserve un crédit, prend un créneau parallèle, normalise la sortie et la stocke — ou rend le crédit intégralement si le job n'aboutit pas. Les limites de débit sont publiées d'avance, et le parallélisme suit le trafic au lieu de buter sur un plafond.

Ce qui a été difficile

  1. 01

    La diffusion ne cesse de bouger

    Chaque plateforme source change sa façon de servir les médias, à son propre rythme. Intégrer en direct, c'est hériter de ce mouvement : un extracteur par plateforme, et jamais deux qui cassent le même jour.

  2. 02

    La sortie doit être prévisible

    Conteneurs, codecs et paliers de qualité diffèrent d'une plateforme à l'autre. Si cela transparaît, chaque consommateur en aval — transcription, recherche, lecture — doit gérer son propre cas particulier.

  3. 03

    Le débit est le produit

    Un client achète la capacité de lancer beaucoup de jobs à la fois, et c'est à lui de fixer ce nombre — pas à nous de le lui imposer. Files, créneaux et ordonnancement deviennent des fonctionnalités porteuses, pas un détail d'implémentation.

  4. 04

    La facturation doit survivre à l'échec

    Un job qui meurt après le début du transfert a quand même consommé de la capacité. Le facturer est indéfendable ; oublier de libérer la réservation fait perdre de l'argent en silence. Les deux doivent être exacts.

Comment nous l'avons construit

01

Une signature d'appel qui ne bouge pas

Les changements des plateformes sont absorbés derrière l'endpoint. La requête écrite le premier jour fonctionne encore quand la diffusion change de l'autre côté.

02

Un job, pas une requête interminable

L'appel renvoie un 202 et un identifiant de job en quelques millisecondes, puis passe par en file, en cours et terminé. Rien ne reste suspendu à une connexion ouverte le temps d'un transfert.

03

Crédits réservés, jamais facturés à l'essai

Un crédit est réservé au démarrage du job et rendu intégralement s'il n'aboutit pas. On facture un résultat, pas des tentatives.

04

Une capacité que l'on interroge

Solde en direct, coût par appel, jobs en cours et état des plateformes reviennent par la même API — planifier sa capacité devient une requête, pas un ticket au support.

Le prochain pourrait être le vôtre.

Dites-nous ce que vous construisez et ce qu'il ne peut pas se permettre de rater. Nous vous dirons honnêtement si nous sommes la bonne équipe pour ça.

Démarrer un projet hello@elixiria.ma
enfrar