from xml.dom.minidom import Document
import gdata.youtube
import gdata.youtube.service
#http://code.google.com/apis/youtube/1.0/developers_guide_python.html#RetrievingVideoEntry
client = gdata.youtube.service.YouTubeService()
query = gdata.youtube.service.YouTubeVideoQuery()
############################
# Change these
location="http://www.ted.com"
changefreq="weekly"
query.max_results = 25
query.start_index = 1
query.author = "TEDtalksDirector"
############################
feed = client.YouTubeQuery(query)
doc = Document()
urlset = doc.createElement("urlset")
urlset.setAttribute("xmlns", "http://www.sitemaps.org/schemas/sitemap/0.9")
urlset.setAttribute("xmlns:video", "http://www.sitemaps.org/schemas/sitemap/0.9")
doc.appendChild(urlset)
url = doc.createElement("url")
# Location
elem = doc.createElement("loc")
elem_text = doc.createTextNode(location)
elem.appendChild(elem_text)
url.appendChild(elem)
for entry in feed.entry:
# video
video = doc.createElement("video:video")
# video:thumbnail_loc
elem = doc.createElement("video:thumbnail_loc")
elem_text = doc.createTextNode(entry.media.thumbnail[0].url)
elem.appendChild(elem_text)
video.appendChild(elem)
# video:title
elem = doc.createElement("video:title")
elem_text = doc.createTextNode(entry.media.title.text)
elem.appendChild(elem_text)
video.appendChild(elem)
# video:description
elem = doc.createElement("video:description")
elem_text = doc.createTextNode(entry.media.description.text)
elem.appendChild(elem_text)
video.appendChild(elem)
# video:content_loc
elem = doc.createElement("video:content_loc")
elem_text = doc.createTextNode(entry.GetSwfUrl())
elem.appendChild(elem_text)
video.appendChild(elem)
# video:player_loc
elem = doc.createElement("video:player_loc")
elem.setAttribute("allow_embed", "yes")
elem.setAttribute("autoplay", "ap=1")
elem_text = doc.createTextNode(entry.media.player.url)
elem.appendChild(elem_text)
video.appendChild(elem)
# video:publication_date
elem = doc.createElement("video:publication_date")
elem_text = doc.createTextNode(entry.published.text)
elem.appendChild(elem_text)
video.appendChild(elem)
# video:duration
elem = doc.createElement("video:duration")
elem_text = doc.createTextNode(entry.media.duration.seconds)
elem.appendChild(elem_text)
video.appendChild(elem)
# video:category
elem = doc.createElement("video:category")
elem_text = doc.createTextNode(entry.media.category[0].text)
elem.appendChild(elem_text)
video.appendChild(elem)
# video:rating
if entry.rating:
elem = doc.createElement("video:rating")
elem_text = doc.createTextNode(entry.rating.average)
elem.appendChild(elem_text)
video.appendChild(elem)
url.appendChild(video)
# end of video
# end of url
urlset.appendChild(url)
#print doc.toxml()
print doc.toprettyxml(indent=" ")
def print_verion():
print "\t\t%s" % location
#print "\t%s" % "abc"
print "\t\t%s" % changefreq
print "\t\t"
print "\t\t\t%s" % entry.media.thumbnail[0].url
print "\t\t\t%s" % entry.media.title.text
print "\t\t\t%s" % entry.media.description.text
print "\t\t\t%s" % entry.published.text
print """\t\t\t%s""" % entry.media.player.url
print "\t\t\t%s" % entry.media.duration.seconds
print "\t\t\t%s" % entry.media.category[0].text
print "\t\t\t%s" % entry.statistics.view_count
if entry.rating:
print "\t\t\t%s" % entry.rating.average
print "\t\t"
print "\t"
print "/"