вторник, 15 март 2011 г.

YouTube или защо по навик търсим hack а не решение дадено от автора на сайта

След поста за 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')

Няма коментари:

Публикуване на коментар