Aller au contenu principal

Vue d'ensemble de l'API MyTelevision v2

L'API MyTelevision v2 est une API RESTful moderne construite avec NestJS, offrant un acces complet a la plateforme de streaming. Elle permet la gestion de contenus multimedia (films, series, TV en direct, radio, podcasts, replays, evenements live et actualites), l'authentification multi-provider, la gestion d'abonnements, et un systeme complet de profils multi-utilisateurs de type Netflix.

Statistiques de l'API

CategorieNombre
Endpoints totaux587
Modules72
Controllers60
Modeles (Schemas)73
Tags Swagger42

Serveurs

EnvironnementURL
Localhttp://localhost:3000/api/v2
Staginghttps://staging-api.mytelevision.app/api/v2
Productionhttps://api.mytelevision.app/api/v2

Documentation interactive

RessourceURL
Swagger UI (Production)https://api.mytelevision.app/api/docs
Swagger UI (Staging)https://staging-api.mytelevision.app/api/docs
Swagger UI (Local)http://localhost:3000/api/docs
OpenAPI JSON/api/docs-json

Architecture de l'API

L'API est organisee en modules fonctionnels :

API Publique (/api/v2)

ModuleDescriptionLien
AuthAuthentification, inscription, connexion socialeAuth
AccountsGestion des comptes (systeme multi-profil)Accounts
ProfilesGestion des profils (max 4 par compte)Profiles
ContentFilms, Series, Live TV, Radio, Podcasts, News, Events, ReplaysContent
StreamingTokens de streaming securises et DRMStreaming
EngagementReactions, Vues, Favoris, HistoriqueEngagement
DevicesGestion des appareilsDevices
SignalsSignaux de recommandationSignals
SessionsGestion des sessionsSessions
SubscriptionsAbonnements et facturationSubscriptions
RiskDetection de fraude et securiteRisk

API Administration (/api/v2/admin)

ModuleDescriptionLien
Admin24 controllers d'administrationAdmin

Autres

ModuleDescriptionLien
WebhooksWebhooks sortantsWebhooks
Codes d'erreurReference des codes d'erreurErreurs

Conventions de reponse

Reponse paginee

Tous les endpoints de liste retournent une reponse paginee :

{
"data": [...],
"meta": {
"page": 1,
"limit": 20,
"total": 150,
"totalPages": 8,
"hasNextPage": true,
"hasPreviousPage": false
}
}

Parametres de pagination

ParametreTypeDefautDescription
pagenumber1Numero de page
limitnumber10Items par page (max 100)
sortstringcreatedAtChamp de tri
orderstringDESCDirection (ASC / DESC)

Format d'erreur

{
"statusCode": 400,
"message": "Validation failed",
"error": "Bad Request",
"timestamp": "2025-01-15T10:30:00.000Z",
"path": "/api/v2/movies",
"details": [
{
"field": "title",
"message": "title must be a string"
}
]
}

Localisation

L'API supporte le multilingue via header ou query parameter :

# Via header
curl -H "Accept-Language: fr-FR" https://api.mytelevision.app/api/v2/movies

# Via query parameter
curl https://api.mytelevision.app/api/v2/movies?lang=en_US
LocaleLangueDefaut
fr_FRFrancaisOui
en_USEnglishNon

Les champs localises suivent le pattern :

  • title / titleEn
  • overview / overviewEn
  • description / descriptionEn

Versioning

L'API utilise le versioning par URL :

  • /api/v2/* -- Version actuelle (recommandee)
  • /api/v1/* -- Deprecated (ne plus utiliser)

Premier appel

# Health check (non authentifie)
curl https://api.mytelevision.app/health

# Liste des films (authentifie)
curl -H "Authorization: Bearer $TOKEN" \
https://api.mytelevision.app/api/v2/movies?page=1&limit=10

Schemas communs

ContentStatus (Enum)

ValeurDescription
DRAFTBrouillon
PUBLISHEDPublie
ARCHIVEDArchive
COMING_SOONA venir

AccessType (Enum)

ValeurDescription
FREEGratuit
PREMIUMPremium (achat unique)
SUBSCRIPTIONAbonnement requis

MediaType (Enum)

ValeurDescription
MOVIEFilm
SERIESSerie
EPISODEEpisode
LIVETVChaine TV
RADIOStation radio
PODCASTPodcast
NEWSArticle
EVENTEvenement live
REPLAYReplay