API BetaSeries

Comment accéder aux statistiques d’un compte betaseries et les afficher sur son site grâce à l’api BetaSeries.
Récupération des accès
Pour accéder à l’API de Betaserie il vous faudra :
1. Obtenir la clé api -> faire la demande sur le site de BetaSeries.
2. Obtenir l’ID de votre compte -> utiliser la console ici et faire la requête suivante :

(Pour obtenir votre mot de passe en md5 vous pouvez utiliser ce site).
Utilisation de Curl pour réaliser la requête
Pour effectuer la requête à l’API j’utilise cette méthode permet de récupérer les données grâce à l’url fournit en paramètre.
// Fonction qui fait la requête à l'api function CallAPI($method, $url, $data = false) { $curl = curl_init(); switch ($method) { case "POST": curl_setopt($curl, CURLOPT_POST, 1); if ($data) curl_setopt($curl, CURLOPT_POSTFIELDS, $data); break; case "PUT": curl_setopt($curl, CURLOPT_PUT, 1); break; default: if ($data) $url = sprintf("%s?%s", $url, http_build_query($data)); } curl_setopt($curl, CURLOPT_URL, $url); curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); $result = curl_exec($curl); curl_close($curl); return json_decode($result, true); }
Récupération des données du membre
Pour récupérer les données du membre on utilise l’url suivante :
https://api.betaseries.com/members/infos?key=votre cle api&id=id du compte&summary=true
Voici les éléments récupérables :
member: member_infos*
member_infos:
- id: integer
- fb_id: integer
- login: string
- xp: integer
- cached: integer
- avatar: url
- profile_banner: url
- in_account: boolean
- subscription: integer
- stats:
- friends: integer
- shows: integer
- seasons: integer
- episodes: integer
- comments: integer
- progress: integer
- episodes_to_watch: integer
- time_on_tv: integer
- time_to_spend: integer
- movies: integer
- badges: integer
- member_since_days: integer
- friends_of_friends: integer
- episodes_per_month: integer
- favorite_day: string
- five_stars_percent: integer
- four-five_stars_total: integer
- streak_days: integer
- favorite_genre: string
- written_words: integer
- without_days: integer
- shows_finished: integer
- shows_current: integer
- shows_to_watch: integer
- shows_abandoned: integer
- movies_to_watch: integer
- time_on_movies: integer
- options:
- downloaded: boolean
- notation: boolean
- timelag: boolean
- global: boolean
- specials: boolean
- episodes_tri: integer
- friendship: string
Un exemple avec la récupération du nombre d’épisodes vus :
function getNbEpisodeVu(){ // Recuperation des donnees $result = CallAPI("", "https://api.betaseries.com/members/infos?key=votre cle api&id=id du compte&summary=true"); return $result['member']['stats']['episodes']; }
Et un autre exemple avec le temps passé devant la TV :
function getAllTimeLostInFrontOfTvFR(){ $result = CallAPI("", "https://api.betaseries.com/members/infos?key=votre cle api&id=id du compte&summary=true"); $sec = $result['member']['stats']['time_on_tv'] * 60; $date1 = new DateTime("@0"); //starting seconds $date2 = new DateTime("@$sec"); // ending seconds $interval = date_diff($date1, $date2); //the time difference $monthleft = $interval->format('%m'); $daysleft = $interval->format('%d'); $hoursleft = $interval->format('%h'); $minleft = $interval->format('%i'); return $monthleft . ' mois' . ', ' . $daysleft . ($daysleft > 1 ? ' jours' : ' jour') . ', ' . $hoursleft . ($hoursleft > 1 ? ' heures et ' : ' heure et ') . $minleft . ($minleft > 1 ? ' minutes devant la TV.' : ' minute devant la TV.');
Récupération des données des actualités du membre
Pour récupérer les news du membre on utilise l’url suivante :
https://api.betaseries.com/timeline/member?key=votre cle api&id=id du compte&summary=true
Voici les éléments récupérables :
events: event*
event:
- id: integer
- type: string
- ref: string # Vouée à disparaître
- ref_id: integer
- user: string
- user_id: integer
- html: html
- date: datetime
- comments: integer
- first_comments: comment*
Un exemple avec l’affichage du dernier episode vu :
function getLastEventEN(){ $result = CallAPI("", "https://api.betaseries.com/timeline/member?key=votre cle api&id=id du compte&summary=true "); for ($i=0; $i<10; $i++) { if ($result['events'][strval($i)]['type'] == "markas") { $res = str_replace("vient de regarder ", "Last episode seen :", $result['events'][strval($i)]['html']); return $res; } } }
Dans cette méthode je récupère le premier évèment de type markas dans les 10 derniers évènements du membre. Le type markas correspond à un épisode marqué comme vu.
Résultat
Voici un exemple d’affichage de ces données :
