Obtenez le titre des vidéos YouTube

je veux extraire les Titre des vidéos de YouTube. Comment puis-je faire cela?

Merci.

24
demandé sur nmnsud 2009-08-01 11:04:59
la source

15 ответов

la façon la plus simple d'obtenir des informations sur une vidéo youtube afaik est de parcourir la chaîne de caractères récupérée à partir de: http://youtube.com/get_video_info?video_id=XXXXXXXX

utiliser quelque chose comme PHP's parse_str (), vous pouvez obtenir un beau tableau de presque rien au sujet de la vidéo:

$content = file_get_contents("http://youtube.com/get_video_info?video_id=".$id);
parse_str($content, $ytarr);
echo $ytarr['title'];

qui imprimera le titre de la vidéo en utilisant $id comme id de la vidéo.

52
répondu Cruel 2011-12-14 02:55:55
la source

une façon de faire cela serait de récupérer la vidéo de youtube comme montré ici

puis extraire le titre du flux atom envoyé par youtube. Un exemple d'alimentation est affiché ici

8
répondu Alex.Bullard 2009-08-01 11:21:56
la source

utilisation de L'API de données JavaScript:

var loadInfo = function (videoId) {
    var gdata = document.createElement("script");
    gdata.src = "http://gdata.youtube.com/feeds/api/videos/" + videoId + "?v=2&alt=jsonc&callback=storeInfo";
    var body = document.getElementsByTagName("body")[0];
    body.appendChild(gdata);
};

var storeInfo = function (info) {
    console.log(info.data.title);
};

Ensuite, vous avez juste besoin d'appeler loadInfo(videoId).

documentation API.

7
répondu sirLisko 2012-07-31 17:15:48
la source

je crois que le meilleur moyen est d'utiliser les gdata de youTube, et puis saisir des informations de XML qui est retourné

http://gdata.youtube.com/feeds/api/videos/6_Ukfpsb8RI

mise à jour: Il y a une nouvelle API maintenant que vous devriez utiliser à la place

https://developers.google.com/youtube/v3/getting-started

URL: https://www.googleapis.com/youtube/v3/videos?id=7lCDEYXw3mM&key=YOUR_API_KEY
     &fields=items(id,snippet(channelId,title,categoryId),statistics)&part=snippet,statistics

Description: This example modifies the fields parameter from example 3 so that in the API response, each video resource's snippet object only includes the channelId, title, and categoryId properties.

API response:

{
 "videos": [
  {
   "id": "7lCDEYXw3mM",
   "snippet": {
    "channelId": "UC_x5XG1OV2P6uZZ5FSM9Ttw",
    "title": "Google I/O 101: Q&A On Using Google APIs",
    "categoryId": "28"
   },
   "statistics": {
    "viewCount": "3057",
    "likeCount": "25",
    "dislikeCount": "0",
    "favoriteCount": "17",
    "commentCount": "12"
   }
  }
 ]
}
5
répondu abritez 2014-01-11 18:12:45
la source

avec bash, wget et lynx:

#!/bin/bash
read -e -p "Youtube address? " address
page=$(wget "$address" -O - 2>/dev/null)
title=$(echo "$page" | grep "   - ")
title="$(lynx --dump -force-html <(echo "<html><body>
$title
</body></html>")| grep "  - ")"
title="${title/*   - /}"
echo "$title"
4
répondu dropped 2011-05-20 06:50:09
la source
// This is the youtube video URL: http://www.youtube.com/watch?v=nOHHta68DdU
$code = "nOHHta68DdU";
// Get video feed info (xml) from youtube, but only the title | http://php.net/manual/en/function.file-get-contents.php
$video_feed = file_get_contents("http://gdata.youtube.com/feeds/api/videos?v=2&q=".$code."&max-results=1&fields=entry(title)&prettyprint=true");
// xml to object | http://php.net/manual/en/function.simplexml-load-string.php
$video_obj = simplexml_load_string($video_feed);
// Get the title string to a variable
$video_str = $video_obj->entry->title;
// Output
echo $video_str;
4
répondu glocsw 2012-10-26 12:41:20
la source

si le script de traitement par lots de python est apprécié: j'ai utilisé BeautifulSoup d'analyser facilement le titre de l'HTML, urllib pour télécharger le HTML et unicodecsv bibliothèques afin de sauvegarder tous les caractères du titre Youtube.

La seule chose que vous devez faire est de placer csv unique (nommé) de la colonne url avec les URLs des vidéos Youtube dans le même dossier que le script et le nom yt-url.csv et exécuter le script. Vous obtiendrez le fichier yt-url-titres.csv contenant les URLs et leurs titres.

#!/usr/bin/python

from bs4 import BeautifulSoup
import urllib
import unicodecsv as csv

with open('yt-urls-titles.csv', 'wb') as f:
    resultcsv = csv.DictWriter(f, delimiter=';', quotechar='"',fieldnames=['url','title'])
    with open('yt-urls.csv', 'rb') as f:
        inputcsv = csv.DictReader(f, delimiter=';', quotechar='"')
        resultcsv.writeheader()
        for row in inputcsv:
            soup = BeautifulSoup(urllib.urlopen(row['url']).read(), "html.parser")
            resultcsv.writerow({'url': row['url'],'title': soup.title.string})
2
répondu Matěj M 2017-12-20 17:39:42
la source

je vais présenter le processus tel que décrit par le YouTube API v3 documentation.

  1. / connectez-vous au compte Google que vous voulez être associé à votre utilisation de L'API YouTube.
  2. Créer un nouveau projethttps://console.developers.google.com/apis/credentials.

    • en haut à gauche, à côté du logo Google APIs, allez à choisir un projet et Créer un projet+.
    • attendez un moment pour que la création se termine.
  3. Faire une nouvelle clé API. Vous en aurez besoin pour accéder aux informations vidéo sous v3.

    • si vous n'êtes pas déjà sur place, allez à Références sous le navigateur à gauche, API and Services > Credentials.
    • Sous l'onglet informations d'Identification, cliquez sur Créer Des Informations D'Identification et sélectionnez touche API.
    • copier la clé API à votre presse-papiers.
  4. fournir un ID de vidéo et votre nouvelle clé API, allez sur ce lien pour visualiser votre travail en action: https://www.googleapis.com/youtube/v3/videos?id=<YOUR VIDEO ID HERE>&key=<YOUR API KEY HERE>%20&part=snippet (pas de crochets)

Exemple

URL est ce que l'URL, vous pouvez aller à travers votre navigateur pour vérifier. En retour, vous devriez obtenir ce sous API response:.

URL: https://www.googleapis.com/youtube/v3/videos?id=7lCDEYXw3mM&key=YOUR_API_KEY
     &fields=items(id,snippet(channelId,title,categoryId),statistics)&part=snippet,statistics

Description: This example modifies the fields parameter from example 3
             so that in the API response, each video resource's snippet
             object only includes the channelId, title,
             and categoryId properties.

API response:

{
 "videos": [
  {
   "id": "7lCDEYXw3mM",
   "snippet": {
    "channelId": "UC_x5XG1OV2P6uZZ5FSM9Ttw",
    "title": "Google I/O 101: Q&A On Using Google APIs",
    "categoryId": "28"
   },
   "statistics": {
    "viewCount": "3057",
    "likeCount": "25",
    "dislikeCount": "0",
    "favoriteCount": "17",
    "commentCount": "12"
   }
  }
 ]
}

cela vous donne des informations vidéo dans le .json format de fichier. Si votre projet est d'accéder à cette information par JavaScript, vous peut-être ici: comment obtenir JSON d'URL en Javascript?.

2
répondu t.y 2018-10-02 01:31:26
la source

Vous pouvez le faire en utilisant Json pour obtenir les toutes les infos sur la vidéo

$jsonURL = file_get_contents("https://www.googleapis.com/youtube/v3/videos?id={Your_Video_ID_Here}&key={Your_API_KEY}8&part=snippet");
$json = json_decode($jsonURL);

$vtitle = $json->{'items'}[0]->{'snippet'}->{'title'};
$vdescription = $json->{'items'}[0]->{'snippet'}->{'description'};
$vvid = $json->{'items'}[0]->{'id'};
$vdate = $json->{'items'}[0]->{'snippet'}->{'publishedAt'};
$vthumb = $json->{'items'}[0]->{'snippet'}->{'thumbnails'}->{'high'}->{'url'};

j'espère que cela permettra de résoudre votre problème.

1
répondu Shahzaib Chadhar 2017-07-31 11:20:05
la source

si vous êtes familier avec java, essayez L'analyseur Jsoup.

Document document = Jsoup.connect("http://www.youtube.com/ABDCEF").get();
document.title();
0
répondu Sorter 2013-02-16 16:18:57
la source

voici un peu de code à couper et à coller pour ColdFusion:

http://trycf.com/gist/f296d14e456a7c925d23a1282daa0b90

il fonctionne sur CF9 (et probablement les versions précédentes) en utilisant L'API V3 de YouTube, qui nécessite une clé API.

j'ai laissé quelques commentaires et diag stuff dedans, pour quiconque veut creuser plus profond. Espérons que cela aide quelqu'un.

0
répondu World's Funkiest Man 2017-03-18 01:50:35
la source

essayez ceci, je reçois le nom et l'url de chaque vidéo dans une liste de lecture, vous pouvez modifier ce code selon votre exigence.

$Playlist = ((Invoke-WebRequest "https://www.youtube.com/watch?v=HKkRbc6W6NA&list=PLz9M61O0WZqSUvHzPHVVC4IcqA8qe5K3r&
index=1").Links | Where {$_.class -match "playlist-video"}).href
$Fname = ((Invoke-WebRequest "https://www.youtube.com/watch?v=HKkRbc6W6NA&list=PLz9M61O0WZqSUvHzPHVVC4IcqA8qe5K3r&ind
ex=1").Links | Where {$_.class -match "playlist-video"}).outerText
$FinalText=""
For($i=0;$i -lt $playlist.Length;$i++)
{
Write-Output("'"+($Fname[$i].split("|")[0]).split("|")[0]+"'+"+"https://www.youtube.com"+$Playlist[$i])
}
0
répondu Ajay Sharma 2017-06-21 21:16:57
la source

JavaX maintenant livré avec cette fonction. La vignette et le titre d'une vidéo, par exemple, sont affichés sur deux lignes:

SS map = youtubeVideoInfo("https://www.youtube.com/watch?v=4If_vFZdFTk"));
showImage(map.get("title"), loadImage(map.get("thumbnail_url")));

Exemple

0
répondu Stefan Reich 2017-10-31 03:14:16
la source

comme Matej M, mais plus simplement:

import requests
from bs4 import BeautifulSoup


def get_video_name(id: str):
    """
    Return the name of the video as it appears on YouTube, given the video id.
    """
    r = requests.get(f'https://youtube.com/watch?v={id}')
    r.raise_for_status()
    soup = BeautifulSoup(r.content, "lxml")
    return soup.title.string


if __name__ == '__main__':
    js = get_video_name("RJqimlFcJsM")
    print('\n\n')
    print(js)
0
répondu Daniel Lee 2018-07-09 18:46:11
la source

Bonjour python3 j'ai créé 2 façons

1) sans clé API

import urllib.request
import json
import urllib
import pprint

#change to yours VideoID or change url inparams
VideoID = "SZj6rAYkYOg" 

params = {"format": "json", "url": "https://www.youtube.com/watch?v=%s" % VideoID}
url = "https://www.youtube.com/oembed"
query_string = urllib.parse.urlencode(params)
url = url + "?" + query_string

with urllib.request.urlopen(url) as response:
    response_text = response.read()
    data = json.loads(response_text.decode())
    pprint.pprint(data)
    print(data['title'])

exemple:

{'author_name': 'Google Developers',
 'author_url': 'https://www.youtube.com/user/GoogleDevelopers',
 'height': 270,
 'html': '<iframe width="480" height="270" '
         'src="https://www.youtube.com/embed/SZj6rAYkYOg?feature=oembed" '
         'frameborder="0" allow="autoplay; encrypted-media" '
         'allowfullscreen></iframe>',
 'provider_name': 'YouTube',
 'provider_url': 'https://www.youtube.com/',
 'thumbnail_height': 360,
 'thumbnail_url': 'https://i.ytimg.com/vi/SZj6rAYkYOg/hqdefault.jpg',
 'thumbnail_width': 480,
 'title': 'Google I/O 101:  Google APIs: Getting Started Quickly',
 'type': 'video',
 'version': '1.0',
 'width': 480}
Google I/O 101:  Google APIs: Getting Started Quickly

2) Utiliser Google API-required APIKEY

import urllib.request
import json
import urllib
import pprint

APIKEY = "YOUR_GOOGLE_APIKEY"
VideoID = "YOUR_VIDEO_ID"

params = {'id': VideoID, 'key': APIKEY,
          'fields': 'items(id,snippet(channelId,title,categoryId),statistics)',
          'part': 'snippet,statistics'}

url = 'https://www.googleapis.com/youtube/v3/videos'

query_string = urllib.parse.urlencode(params)
url = url + "?" + query_string

with urllib.request.urlopen(url) as response:
    response_text = response.read()
    data = json.loads(response_text.decode())
    pprint.pprint(data)
    print("TITLE: %s " % data['items'][0]['snippet']['title'])

exemple:

{'items': [{'id': 'SZj6rAYkYOg',
            'snippet': {'categoryId': '28',
                        'channelId': 'UC_x5XG1OV2P6uZZ5FSM9Ttw',
                        'title': 'Google I/O 101:  Google APIs: Getting '
                                 'Started Quickly'},
            'statistics': {'commentCount': '36',
                           'dislikeCount': '20',
                           'favoriteCount': '0',
                           'likeCount': '418',
                           'viewCount': '65783'}}]}
TITLE: Google I/O 101:  Google APIs: Getting Started Quickly
0
répondu porto 2018-10-05 14:02:47
la source

Autres questions sur