След поста за youtube video в mplayer и осъзнавайки че google и в частност youtube са били така добри да предоставят решение което не включва "хак" на уеб сайта им се почувствах задължен да споделя това с "милионите" читатели на блога ни.
Решението е именно google data api-то което с пълна сила работи с youtube предоставяйки тонове готови библиотеки за различни езици и доста удобна документация с примери на всички тези езици:
http://code.google.com/apis/youtube/2.0/developers_guide_protocol_audience.html
Ето и линк с информация за останалите API-та на google:
http://code.google.com/apis/youtube/getting_started.html
Авторът, верен на идеята, че може да пише на всеки създаван някога програмен език (дори и тези които никога не е виждал) разбира се се насочи към най-малко познатият си Python:
http://code.google.com/apis/youtube/1.0/developers_guide_python.html
Ето едно парче код като proof of concept с което ще приключим този пост:
#! /usr/bin/env python
# -*- coding: utf-8 -*-
# Author: Peach
import gdata.youtube
import gdata.youtube.service
import sys
def PrintEntryDetails(entry):
print '%s [%i:%i]' % (entry.media.title.text, (int(entry.media.duration.seconds)//60), (int(entry.media.duration.seconds)-(int(entry.media.duration.seconds)//60)*60) )
#print 'Video published on: %s ' % entry.published.text
#print 'Video description: %s' % entry.media.description.text
#print 'Video category: %s' % entry.media.category[0].text
#print 'Video tags: %s' % entry.media.keywords.text
#print 'Video watch page: %s' % entry.media.player.url
#print 'Video flash player URL: %s' % entry.GetSwfUrl()
#print 'Video duration: %s' % entry.media.duration.seconds
def PrintVideoFeed(feed):
i=1
for entry in feed.entry:
sys.stdout.write('[')
sys.stdout.write(str(i))
sys.stdout.write('] ')
i=i+1
PrintEntryDetails(entry)
def SearchAndPrint(search_terms):
yt_service = gdata.youtube.service.YouTubeService()
query = gdata.youtube.service.YouTubeVideoQuery()
query.vq = search_terms
query.max_results = 50
query.orderby = 'relevance'
query.racy = 'include'
feed = yt_service.YouTubeQuery(query)
PrintVideoFeed(feed)
SearchAndPrint('Rihanna unfaithful')
Няма коментари:
Публикуване на коментар