Какой самый простой способ получить информацию с youtube видео и сохранить в базе данных?Продолжительность видео Youtube до модели Django
Например, я хочу получить продолжительность от YouTube видео
моя модель:
class Video(models.Model):
video_id = models.CharField(max_length=150)
title = models.CharField(max_length=150)
slug = AutoSlugField(populate_from="title")
description = models.TextField(blank=True)
#duration = models.CharField(max_length=10 , default=video_duration)
views = models.PositiveIntegerField(default=0)
likes = models.PositiveIntegerField(default=0)
category = models.ForeignKey("VideoCategory")
tags = models.ManyToManyField("Tag")
created = models.DateTimeField(auto_now_add=True)
modified = models.DateTimeField(auto_now=True)
"""
My idea:
def get_video_duration():
xml = "http://gdata.youtube.com/feeds/api/videos/" + video_id
open xml
parse
s = take duration from xml in seconds
import datetime
video_duration = str(datetime.timedelta(seconds=s)) in h:m:s
"""
def __str__(self):
return self.title
Может кто-нибудь помочь мне, пожалуйста?
Спасибо заранее
Edit:
Спасибо за ответы, так что я попробовал метод с помощью JSON, но я получаю VIDEO_DURATION ошибки не определен
class Video(models.Model):
video_id = models.CharField(max_length=150)
title = models.CharField(max_length=150)
slug = AutoSlugField(populate_from="title")
description = models.TextField(blank=True)
duration = models.CharField(max_length=10, default=video_duration)
views = models.PositiveIntegerField(default=0)
likes = models.PositiveIntegerField(default=0)
category = models.ForeignKey("VideoCategory")
tags = models.ManyToManyField("Tag")
created = models.DateTimeField(auto_now_add=True)
modified = models.DateTimeField(auto_now=True)
def video_duration():
h = httplib2.Http()
url = "http://gdata.youtube.com/feeds/api/videos/%sv=2&alt=json" % video_id
respose = h.request(url)
res = json.loads(respose[1])
video_duration = res['entry']['media$group'][
'media$content'][0]['duration']
return video_duration
Ваш псевдо-код является правильным. Вам нужно использовать XML-парсер, например [ElementTree] (https://docs.python.org/2/library/xml.etree.elementtree.html). Какова конкретная проблема, с которой вы сталкиваетесь? – Selcuk
tree = ET.parse (xml) -> error Неверный аргумент: 'http://gdata.youtube.com/feeds/api/videos/LPfnK8lSLOQ'. Нужен ли мне конкретный .xml в этом пути или? – John