Comment télécharger des annonces vidéo à partir de Youtube?
J'aimerais télécharger certains (je veux dire beaucoup d') les annonces vidéo à partir de YouTube (pas les vidéos, mais les annonces qui sont jouées avant eux) à des fins de recherche.
Des suggestions pour les outils ou la façon d'atteindre cet objectif? Je ne vais pas l'esprit de certains de programmation sur mon hack, mais j'ai actuellement aucune idée de comment. Aussi, YouTube n'est pas une obligation; les annonces vidéo à partir d'autres sites de vidéo fonctionner pour moi aussi.
Vous devez vous connecter pour publier un commentaire.
J'ai regardé seulement sur le Youtube du système d'annonces, cela ne fonctionnera pas pour les autres systèmes (le plus probable). La bonne chose à propos de YouTube, que vous pouvez obtenir toutes les informations nécessaires directement à partir d'une page de vidéo, il est donc plus facile à analyser de vraiment rapide (j'ai téléchargé près de 22M vidéo pages en une seule journée sur un très petit serveur). Si la pièce que vous cherchez est
;ytplayer.config = {(.*?)};
qui contient inline objet json (facile à traiter). Vous n'aurez pas besoin d'autre chose.Si vous ne voulez pas de l'analyser à partir de l'HTML, vous pouvez obtenir directement juste l'objet json par l'ajout d'un paramètre
&spf=prefetch
à la fin de tout lien vidéo Youtube par exemple https://www.youtube.com/watch?v=bbEoRnaOIbs&spf=prefetchPas tous les vidéo YouTube montre des Annonces (à partir de mes statistiques, seulement 18% des vidéos eactually n'). Vous pouvez vérifier si les annonces sont activés pour la vidéo juste en la regardant pour
ad_tag
clé à l'intérieur de l'objet json.YouTube est en utilisant trois différents systèmes de digestion anaérobie:
diffuser des Annonces provenant de deux sources différentes:
- vidéo mise en ligne sur YouTube utilisé comme ad (surtout que la partie de la vidéo)
- la vidéo de source externe (3e partie serveur ads)
Le point de départ est toujours la même. Recherchez
dynamic_allocation_ad_tag
clé à l'intérieur de l'objet json. Il contient une url menant à doubleclick serveur. Cette url ne fonctionnera pas jusqu'à ce que vous allez modifier cette partiesz=WIDTHxHEIGHT;
avec un réel AR valeurs par exemplesz=480x70,480x360,480x361;
.Vous souhaitez localiser trois autres touches
tpas_partner_id
,tpas_video_id
etvideo_id
(c'est la video_id à partir de l'url) dans le même fichier json, car ceux-ci seront utilisés pour la 3ème partie, le système d'annonce.Maintenant, vous pouvez frapper le doubleclick url, ce qui sera de retour un fichier XML contenant des informations sur l'annonce qui sera servi pour cette vidéo. L'ensemble du dossier est très intéressant et plein d'informations importantes (de sorte que vous devriez stocker dans la vidéo). Recherchez ces trois touches
AdSystem
,AdTitle
etDescription
.Si l'annonce est servi à partir de adsense système (à la fois adsense ou adx) ce document xml qui contient toutes les informations pour l'annonce, y compris la durée et le lien direct pour l'annonce. Le lien est exactement ce que vous cherchez et vous pouvez le trouver sous une clé
MediaFile
.Le lien surtout ressembler à ceci
http://www.youtube.com/get_video?video_id=LCeDi-d5CRg&ts=1391921207&t=CyJEI0XYwJVJEYE5CVhqY-DF3KQ&gad=1
et il vous redirige vers le fichier dans le format mp4. Si le système de publicité est ADX, vous obtiendrez un lien direct pour la plupart un fichier flv par exemplehttp://playtime.tubemogul.com/ad_promoted_videos/4799351_dhxsYlMYHmLMmxL0oBem_1390593897.flv
Si l'annonce est server à partir de la 3ème partie du système, GDFP, vous devez appeler le serveur différent. Pour la 3ème partie annonces Youtube utilise Roue libre service. Pour obtenir de l'annonce de données, vous devez préparer une demande XML qui ressemble à ceci:
Vous avez probablement aperçut plusieurs variables dans {}. Vous devez les remplacer par des données personnalisées, surtout avec les données que vous avez obtenu à partir de l'objet json.
10613:10613_youtube_as3_player
et10613:youtube2
.Maintenant, vous pouvez envoyer ce fichier XML comme une requête POST à
https://2975c.v.fwmrm.net/ad/p/1?
(n'oubliez pas d'envoyer avec le type de contenuapplication/xml
).La réponse contient un autre fichier XML où vous avez toutes les données nécessaires pour l'annonce, y compris des liens directs dans les différents formants et les dimensions. Vous pouvez les trouver sous clé
asset
. Encore une fois, vous devriez probablement stocker la totalité du fichier avec la vidéo qu'il contient des données supplémentaires pour la publicité.Que c'est, heureux à la chasse.
22M video pages in a single day
? Je suis l'aide de scrapy et il va arrêter de ramper après les 1000 pages environ, en laissant la plupart des pages uncrawled. Tous les conseils pour obtenir plus de couverture?dynamic_allocation_ad_tag
ne semble pas exister sur leytplayer.config
objet de plus? Je peux trouverad_tag
et quelques autres, mais aucun d'entre eux semblent être le point de départ de la pré-roll vidéo... Actuellement à tenter de déchiffrer de nouveau, mais toute information mise à jour serait fantastique si vous en avez un. Merci.Un beaucoup plus simple solution est de faire un clic droit sur la fenêtre de la vidéo et sélectionnez
Stats for nerds
.Une liste de stats apparaît, recherchez
Video ID
et le copier - copier uniquement la partie de la chaîne avant de la/
personnage, que vous avez seulement besoin de l'Video ID
, pas lasCPN
chaîne. (Par exemple j'étais à la recherche d'un Sam Fours vidéo, mais l'annonce de la vidéo n'avait pas de lien cliquable, j'ai donc utilisé leStats for nerds
fonctionnalité et trouvé le ID:a-C4m7teAAU
).Puis ajoutez-y simplement la vidéo ID sur le standard
YouTube
regarder l'URL comme ceci: