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