Подтвердить что ты не робот

Получить название из видео YouTube

Я хочу извлечь Title видео YouTube. Как я могу это сделать?

Спасибо.

4b9b3361

Ответ 1

Самый простой способ получить информацию о видео youtube afaik - проанализировать строку, полученную из: http://youtube.com/get_video_info?video_id=XXXXXXXX

Используя что-то вроде PHP parse_str(), вы можете получить хороший массив почти ничего о видео:

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

Это будет печатать заголовок для видео с использованием $id в качестве идентификатора видео.

Ответ 2

Один из способов сделать это - получить видео с youtube, как показано здесь

Затем извлеките заголовок из корма атома, отправленного youtube. Образец канала показан здесь

Ответ 3

Использование API данных 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);
};

Тогда вам просто нужно позвонить loadInfo(videoId).

Дополнительная информация доступна в документации API.

Ответ 4

Я считаю, что лучший способ - использовать youTube gdata, а затем захватить информацию из XML, который возвращается

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

Обновление: Теперь есть новый API, который вы должны использовать вместо

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 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

С bash, wget и 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"

Ответ 6

// 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;

Ответ 7

Если вы знакомы с java, попробуйте парсер Jsoup.

Document document = Jsoup.connect("http://www.youtube.com/ABDCEF").get();
document.title();

Ответ 8

Здесь приведен код вырезания и вставки для ColdFusion:

http://trycf.com/gist/f296d14e456a7c925d23a1282daa0b90

Он работает на CF9 (и, вероятно, более ранних версиях) с помощью API YouTube v3, для которого требуется ключ API.

Я оставил в нем некоторые комментарии и материалы, для всех, кто хочет копать глубже. Надеюсь, это поможет кому-то.

Ответ 9

Попробуйте это, я получаю имя и URL каждого видео в плейлисте, вы можете изменить этот код в соответствии с вашим требованием.

$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])
}

Ответ 10

Вы можете использовать Json для получения всей информации о видео

$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'};

Я надеюсь, что это решит вашу проблему.

Ответ 11

JavaX теперь поставляется с этой функцией. Отображение миниатюры и заголовка видео, например, представляет собой двухстрочный:

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

Пример

Ответ 12

Если оценить пакетную обработку python script: я использовал BeautifulSoup, чтобы легко разобрать заголовок из HTML, urllib, чтобы загрузить HTML и unicodecsv strong > , чтобы сохранить все символы из названия Youtube.

Единственное, что вам нужно сделать, - установить csv с одиночным (названным) столбцом url с URL-адресами видео Youtube в той же папке, что и script, и называть его yt-urls.csv и запустите script. Вы получите файл yt-urls-titles.csv, содержащий URL-адреса и их названия.

#!/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})