Bonjour.
J'ai regardé ce problème:
La fonction _get_content retourne le contenu de la page de la vidéo.
la fonction _get_args sélectionne une sous-partie de la page (content) pour le parse en JSON. et c'est la que ça coince:
j'ai pris une vidéo arbitraire et la sous-partie sélectionnée par _get_args pour le parse via JSON. Voici la sous-partie :
{args:{raw_player_response:ytInitialPlayerResponse}};var createPlayer=window.yt&&window.yt.player&&window.yt.player.Application&&(window.yt.player.Application.createAlternate||window.yt.player.Application.create);if(createPlayer){createPlayer("player-api",ytplayer.config,ytplayer.web_player_context_config);ytplayer.config.loaded=true}}}
On peut remarquer que la fonction de décodage appelé ligne 298 de WWW::YouTube::Download est decode_prefix(). Ce qui demande explicitement de décoder du json qui serait en début de chaine.
Or il semble que le JSON ne soit pas formaté correctement. Il manque des guillemets aux clefs de l'objet JSON. La fonction de décodage doit s'attendre à quelque chose de ce genre-là:
{"args":{"raw_player_response":"ytInitialPlayerResponse"}};var createPlayer=window.yt&&window.yt.player&&window.yt.player.Application&&(window.yt.player.Application.createAlternate||window.yt.player.Application.create);if(createPlayer){createPlayer("player-api",ytplayer.config,ytplayer.web_player_context_config);ytplayer.config.loaded=true}}}
Partager