La problématique

Nous avions déja parlé de JsonPorn, une api de recherche de contenus pornos sur DES sites internet. Aujourd'hui, nous allons aborder une API qui reste dans la même thématique, à la seule et grande différence que cette API est liée à un seul site : Redtube.

ATTENTION : Mineurs, merci de ne pas suivre les liens mentionnés !
Je demande aux jeunes développeurs de moins de 18 ans de ne travailler que le JSON et XML sans regarder les contenus, ca va de soit. Et oui jusqu'à présent, le XML ou le JSON, c'est pas porno !
(enfin pas pour tout le monde)

Cet article n'est pas une incitation à la débauche, mais bien un article de décortications d'une API fournie par un fornisseur de contenus (il se trouve que ce contenu est pronographique). L'objet est bel est bien de comprendre le fonctionnement, et pas de se rincer l'oeil.
Alors oui je sais, la semaine dernière on a vu comment ce prémunir du porno, et bien cette semaine voyons comment travailler avec.

Le servide interrogé : RedTube

Redtube met en place une palanqué d'appels d'API plutôt bien foutues (les API bien foutues, pas le contenu !!) qui permet de jongler sur des requêtes http transversales assez interessantes. Ce site donne l'accès à 9 méthodes, ce qui est pas mal mais ce qui reste peu en fait) qui, toutes combinées, donnent un accès total au contenu.

  • searchVideo : Récupère la liste de vidéos, pouvant être filtrée selon plusieurs paramètres, y compris la possibilité d'interroger l'API pour les vidéos contenant une chaîne spécifique dans le titre ou la description.
  • getVideoById : Récupère des informations supplémentaires sur une vidéo spécifique dont le paramètre est passé dans la variable video_id.
  • isVideoActive : Récupère l'état d'une vidéo spécifique spécifiée par le paramètre video_id, ce qui est utile pour garder vos vidéos incorporées à jour.
  • getVideoEmbedCode : Récupère le code incorporé (encodé en BASE64) pour une vidéo spécifique avec le paramètre video_id, ce qui est utile pour incorporer automatiquement des vidéos.
  • getDeletedVideos : Retourne toutes les vidéos effacées.

Au delà des contenus proprement dits, RedTube permet aussi de requeter sur l'organisation de ses contenus, permettant de travailler sur des "ensembles" de données.

  • getCategoriesList : Retourne toutes les catégories accessibles sur RedTube.
  • getTagList : Retourne une liste des métatags (ou hashtags ou encore mots-dièses pour parler français) utilisés sur RedTube
  • getStarList : Retourne la liste des stars pornos référencées sur RedTube
  • getStarDetailedList : Récupère toutes les stars du porno disponibles avec des détails (URL de la page et miniature de la star). Vous pouvez, vu le nombre colossal de stars, spécifier un numéro de page en paramètre (&page=25) pour acceder directement à une page. Pour chacun des résultats, deux propriétés (en XML) sont portées : l'URL de la miniature de la star et l'URL de la page de la star. Notez que chacune des requêtes vous retourne aussi un nombre (premier résultat du XML), c'est le nombre total d'enregistrements. Utile pour vos progerammes

Pour chacune des méthodes décrites ci-dessous, vous devez spécifier le format de sortie. Deux valeurs sont prévues : le JSON et le XML. Il suffit de spécifier &output=JSON ou &output=XML dans l'url.
Appel de la méthode : Un peu à la manière des API de Facebook (que je ne maitrise encore pas), les API prennent des "facettes" en paramètre. Prenons comme exemple la méthode de recherche (la méthode "search") et détaillons là 

https://api.redtube.com/?data=redtube.Videos.searchVideos&output=xml&search=hard&tags[]=Teen&thumbsize=all

D'autres paramètres peuvent être ajoutés à votre requête tels que l'ordre de resultats ou encore une période de recherche (hebdomadaire, mensuelle ou "depuis toujours"). Je vous renvoie à la documentation Redtude pour trouver ce qu'il faut passer comme valeurs.

Quelques résultats (en XML, non vous ne verrez rien) :

ATTENTION : le XML renvoyé contient plein de choses donc la video, mais aussi des screenshots de la video. C'est à vous à en extraire ce qui vous interesse.
Bon coding...:-)

VOIR LE RESULTAT

Mon Github

slhuilli1's GitHub repositories