Si vous voulez une application Android qui permettrait une gestion flexible des protocoles de streaming Youtube d'une manière qui ne prendrait en charge que la sélection de la partie audio du flux multimédia tout en supprimant la piste vidéo, gardez un œil sur VLC pour Android . Il est toujours «en cours de développement» mais traitera probablement de la fonction «audio uniquement».
D'un point de vue plus technique, il permet de décomposer le problème en protocoles réseau Youtube disponibles pour le streaming multimédia RTSP. Les spécifications RTSP permettent à un client de faire une demande à l'aide de la commande DESCRIBE à laquelle le serveur répond avec un segment de données SDP (voir les détails ci-dessous). Les serveurs Youtube peuvent répondre dans une variété de protocoles, envoyant des flux sous-jacents qui à leur tour utilisent une variété d'encodages - un pour l'audio, un pour la vidéo - pour transférer les bits multimédias à travers le réseau vers le client. Sur les réseaux mobiles, une fonctionnalité qui va sur YouTube afin de recevoir à la fois des pistes audio et vidéo avant de supprimer la vidéo pendant la lecture uniquement de l'audio n'est pas une bonne pratique en raison de la forte exigence du réseau pour le flux vidéo inutilisé. Vous pouvez contourner l'inefficacité du réseau grâce à un approfondissement technique supplémentaire.
Les normes RTSP et SDP observées par Youtube permettraient à un client de streaming (appareil Android) de demander UNIQUEMENT l'audio pendant les étapes de négociation du client / serveur et les étapes de négociation autour de la configuration de la connexion réseau qui fera le streaming multimédia. Dans ce cas, aucune vidéo ne serait envoyée et le lecteur Android serait configuré sur un flux audio uniquement. Certains détails de commande CLI et certains détails de protocole sur ce scénario «audio YouTube uniquement» suivent.
Une piste audio YouTube au format 1 uniquement pour une vidéo particulière est disponible à l'URI RTSP suivant:
rtsp://v8.cache8.c.youtube.com/CigLENy73wIaHwlcw_gs85OUchMYDSANFEgGUgx1c2VyX3VwbG9hZHMM/0/0/0/video.3gp
À partir de l'URI RTSP pour l'intégralité de la vidéo (piste audio plus piste vidéo), l'expression CLI suivante utilise 2 clients multimédias openRTSP et mPlayer allant sur Youtube où elle OBTIENT / LECTURE uniquement la piste audio Youtube en demandant uniquement channel = 1 .
./openRTSP -a rtsp://v8.cache8.c.youtube.com/CigLENy73wIaHwlcw_gs85OUchMYDSANFEgGUgx1c2VyX3VwbG9hZHMM/0/0/0/video.3gp | ./mplayer -cache 8092 - -rawaudio channels=1:rate=8000:samplesize=2:format=0x73616D72
Cette expression CLI est décrite plus en détail dans un lien en bas.
Les «flux» Youtube décrivent les formats de flux disponibles pour toute vidéo Youtube, y compris les URI RTSP mentionnés ci-dessus. Pour une explication technique des formats de streaming Youtube , voir l'entrée «format» 1,5,6 dans le long tableau.
La demande suivante obtient un flux de Youtube qui comprend les URI RTSP de différents formats disponibles pour cette vidéo particulière:
http://gdata.youtube.com/feeds/api/users/rowntreerob/uploads?vq=cpST8yz4w1w&prettyprint='true'
Les détails sanglants d'une session RTSP connectée dans laquelle la description SDP complète est demandée pour une vidéo youtube particulière afin que seule la piste audio puisse être diffusée / lue sont ici .
Clé des lignes numérotées dans le lien ci-dessus:
82 – the RTSP DESCRIBE request
101 – the SDP response
103 – video track’s format
116 – the attributes describing the audio track
line 165 – the audio track setup by the player
184 – the audio-only playback
201 – using a separate CLI expression this is playback of a previous download on just the audio track