Index: ipk/source/players_mytube_1_0/usr/lib/enigma2/python/Plugins/Extensions/MyTube/MyTubeSearch.py
===================================================================
--- ipk/source/players_mytube_1_0/usr/lib/enigma2/python/Plugins/Extensions/MyTube/MyTubeSearch.py	(revision 8926)
+++ ipk/source/players_mytube_1_0/usr/lib/enigma2/python/Plugins/Extensions/MyTube/MyTubeSearch.py	(revision 8932)
@@ -1,3 +1,2 @@
-from __init__ import _
 from MyTubeService import GoogleSuggestions
 from Screens.Screen import Screen
@@ -19,4 +18,6 @@
 from threading import Thread
 from threading import Condition
+from xml.etree.cElementTree import parse as cet_parse
+from StringIO import StringIO
 
 
@@ -129,5 +130,4 @@
 			self.value = self.suggestionsWindow.activate()
 			self.allmarked = False
-			#self.marked_pos = -1
 			self.suggestionsListActivated = True
 			ret = True
@@ -267,5 +267,6 @@
 class MyTubeSuggestionsListScreen(Screen):
 	skin = """
-		<screen name="MyTubeSuggestionsListScreen" position="center,93" zPosition="6" size="610,160" flags="wfNoBorder" >
+		<screen name="MyTubeSuggestionsListScreen" position="60,93" zPosition="6" size="610,160" flags="wfNoBorder" >
+			<ePixmap position="0,0" zPosition="-1" size="610,160" pixmap="/usr/lib/enigma2/python/Plugins/Extensions/MyTube/suggestions_bg.png" alphatest="on" transparent="1" backgroundColor="transparent"/>
 			<widget source="suggestionslist" render="Listbox" position="10,5" zPosition="7" size="580,150" scrollbarMode="showOnDemand" transparent="1" >
 				<convert type="TemplatedMultiContent">
@@ -290,16 +291,21 @@
 
 	def update(self, suggestions):
-		if suggestions and len(suggestions[1]) > 0:
+		if suggestions and len(suggestions) > 0:
 			if not self.shown:
 				self.show()
-			if suggestions:
+			suggestions_tree = cet_parse(StringIO(suggestions)).getroot()
+			if suggestions_tree:
 				self.list = []
 				self.suggestlist = []
-				suggests = suggestions[1]
-				for suggestion in suggests:
-					name = suggestion[0]
-					results = suggestion[1].replace(" results", "")
-					numresults = results.replace(",", "")
-					self.suggestlist.append((name, numresults ))
+				for suggestion in suggestions_tree.findall("CompleteSuggestion"):
+					name = None
+					numresults = None
+					for subelement in suggestion:
+						if subelement.attrib.has_key('data'):
+							name = subelement.attrib['data'].encode("UTF-8")
+						if subelement.attrib.has_key('int'):
+							numresults = subelement.attrib['int']
+						if name and numresults:
+							self.suggestlist.append((name, numresults ))
 				if len(self.suggestlist):
 					self.suggestlist.sort(key=lambda x: int(x[1]))
@@ -361,12 +367,12 @@
 class MyTubeSettingsScreen(Screen, ConfigListScreen):
 	skin = """
-		<screen name="MyTubeSettingsScreen" position="center,center" size="720,576" title="MyTubePlayerMainScreen..." >
-			<eLabel backgroundColor="#32000000" position="0,0" size="720,576" zPosition="-1"/>
+		<screen name="MyTubeSettingsScreen" flags="wfNoBorder" position="0,0" size="720,576" title="MyTubePlayerMainScreen..." >
+			<ePixmap position="0,0" zPosition="-1" size="720,576" pixmap="~/mytubemain_bg.png" alphatest="on" transparent="1" backgroundColor="transparent"/>
 			<widget name="title" position="60,50" size="600,50" zPosition="5" valign="center" halign="left" font="Regular;21" transparent="1" foregroundColor="white" shadowColor="black" shadowOffset="-1,-1" />
 			<widget name="config" zPosition="2" position="60,120" size="610,370" scrollbarMode="showOnDemand" transparent="1" />
 
 			<ePixmap position="100,500" size="100,40" zPosition="0" pixmap="~/plugin.png" alphatest="on" transparent="1" />
-			<eLabel backgroundColor="red" position="220,500" size="140,3" zPosition="4"/> 
-         	<eLabel backgroundColor="green" position="360,500" size="140,3" zPosition="4"/>
+			<ePixmap position="220,500" zPosition="4" size="140,40" pixmap="skin_default/buttons/red.png" transparent="1" alphatest="on" />
+			<ePixmap position="360,500" zPosition="4" size="140,40" pixmap="skin_default/buttons/green.png" transparent="1" alphatest="on" />
 			<widget name="key_red" position="220,500" zPosition="5" size="140,40" valign="center" halign="center" font="Regular;21" transparent="1" foregroundColor="white" shadowColor="black" shadowOffset="-1,-1" />
 			<widget name="key_green" position="360,500" zPosition="5" size="140,40" valign="center" halign="center" font="Regular;21" transparent="1" foregroundColor="white" shadowColor="black" shadowOffset="-1,-1" />
@@ -439,5 +445,4 @@
 	def selectionChanged(self):
 		current = self["config"].getCurrent()
-		#print current
 
 	def newConfig(self):
@@ -520,6 +525,6 @@
 class MyTubeTasksScreen(Screen):
 	skin = """
-		<screen name="MyTubeTasksScreen" position="center,center" size="720,576" title="MyTubePlayerMainScreen..." >
-			<eLabel backgroundColor="#32000000" position="0,0" size="720,576" zPosition="-1"/>
+		<screen name="MyTubeTasksScreen" flags="wfNoBorder" position="0,0" size="720,576" title="MyTubePlayerMainScreen..." >
+			<ePixmap position="0,0" zPosition="-1" size="720,576" pixmap="~/mytubemain_bg.png" alphatest="on" transparent="1" backgroundColor="transparent"/>
 			<widget name="title" position="60,50" size="600,50" zPosition="5" valign="center" halign="left" font="Regular;21" transparent="1" foregroundColor="white" shadowColor="black" shadowOffset="-1,-1" />
 			<widget source="tasklist" render="Listbox" position="60,120" size="610,370" zPosition="7" scrollbarMode="showOnDemand" transparent="1" >
@@ -537,5 +542,5 @@
 			</widget>
 			<ePixmap position="100,500" size="100,40" zPosition="0" pixmap="~/plugin.png" alphatest="on" transparent="1" />
-			<eLabel backgroundColor="red" position="220,500" size="140,3" zPosition="4"/>
+			<ePixmap position="220,500" zPosition="4" size="140,40" pixmap="skin_default/buttons/red.png" transparent="1" alphatest="on" />
 			<widget name="key_red" position="220,500" zPosition="5" size="140,40" valign="center" halign="center" font="Regular;21" transparent="1" foregroundColor="white" shadowColor="black" shadowOffset="-1,-1" />
 		</screen>"""
@@ -570,5 +575,4 @@
 		self["title"].setText(_("MyTubePlayer active video downloads"))
 		self.Timer.startLongTimer(2)
-		#self.Timer.start(1000)
 
 	def TimerFire(self):
@@ -607,5 +611,6 @@
 class MyTubeHistoryScreen(Screen):
 	skin = """
-		<screen name="MyTubeHistoryScreen" position="center,93" zPosition="6" size="610,160" flags="wfNoBorder" >
+		<screen name="MyTubeHistoryScreen" position="60,93" zPosition="6" size="610,160" flags="wfNoBorder" >
+			<ePixmap position="0,0" zPosition="-1" size="610,160" pixmap="/usr/lib/enigma2/python/Plugins/Extensions/MyTube/suggestions_bg.png" alphatest="on" transparent="1" backgroundColor="transparent"/>
 			<widget source="historylist" render="Listbox" position="10,5" zPosition="7" size="580,150" scrollbarMode="showOnDemand" transparent="1" >
 				<convert type="TemplatedMultiContent">
Index: ipk/source/players_mytube_1_0/usr/lib/enigma2/python/Plugins/Extensions/MyTube/MyTubeService.py
===================================================================
--- ipk/source/players_mytube_1_0/usr/lib/enigma2/python/Plugins/Extensions/MyTube/MyTubeService.py	(revision 8926)
+++ ipk/source/players_mytube_1_0/usr/lib/enigma2/python/Plugins/Extensions/MyTube/MyTubeService.py	(revision 8932)
@@ -1,3 +1,4 @@
 # -*- coding: iso-8859-1 -*-
+from __init__ import bin2long, long2bin, rsa_pub1024, decrypt_block
 import gdata.youtube
 import gdata.youtube.service
@@ -224,5 +225,5 @@
 				infopage = urlopen2(request).read()
 				videoinfo = parse_qs(infopage)
-				if 'fmt_url_map' in videoinfo:
+				if ('url_encoded_fmt_stream_map' or 'fmt_url_map') in videoinfo:
 					break
 			except (URLError, HTTPException, socket.error), err:
@@ -230,8 +231,8 @@
 				return video_url
 
-		if 'fmt_url_map' not in videoinfo:
+		if ('url_encoded_fmt_stream_map' or 'fmt_url_map') not in videoinfo:
 			# Attempt to see if YouTube has issued an error message
 			if 'reason' not in videoinfo:
-				print '[MyTube] Error: unable to extract "fmt_url_map" parameter for unknown reason'
+				print '[MyTube] Error: unable to extract "fmt_url_map" or "url_encoded_fmt_stream_map" parameter for unknown reason'
 			else:
 				reason = unquote_plus(videoinfo['reason'][0])
@@ -241,7 +242,15 @@
 		video_fmt_map = {}
 		fmt_infomap = {}
-		tmp_fmtUrlDATA = videoinfo['fmt_url_map'][0].split(',')
+		if videoinfo.has_key('url_encoded_fmt_stream_map'):
+		        tmp_fmtUrlDATA = videoinfo['url_encoded_fmt_stream_map'][0].split(',url=')
+		else:
+                        tmp_fmtUrlDATA = videoinfo['fmt_url_map'][0].split(',')        
 		for fmtstring in tmp_fmtUrlDATA:
-			(fmtid,fmturl) = fmtstring.split('|')
+			if videoinfo.has_key('url_encoded_fmt_stream_map'):
+			        (fmturl, fmtid) = fmtstring.split('&itag=')
+			        if fmturl.find("url=") !=-1:
+			                fmturl = fmturl.replace("url=","")
+			else:
+                                (fmtid,fmturl) = fmtstring.split('|')                
 			if VIDEO_FMT_PRIORITY_MAP.has_key(fmtid):
 				video_fmt_map[VIDEO_FMT_PRIORITY_MAP[fmtid]] = { 'fmtid': fmtid, 'fmturl': unquote_plus(fmturl) }
@@ -250,5 +259,5 @@
 		if video_fmt_map and len(video_fmt_map):
 			print "[MyTube] found best available video format:",video_fmt_map[sorted(video_fmt_map.iterkeys())[0]]['fmtid']
-			video_url = video_fmt_map[sorted(video_fmt_map.iterkeys())[0]]['fmturl']
+			video_url = video_fmt_map[sorted(video_fmt_map.iterkeys())[0]]['fmturl'].split(';')[0]
 			print "[MyTube] found best available video url:",video_url
 		
Index: ipk/source/players_mytube_1_0/usr/lib/enigma2/python/Plugins/Extensions/MyTube/__init__.py
===================================================================
--- ipk/source/players_mytube_1_0/usr/lib/enigma2/python/Plugins/Extensions/MyTube/__init__.py	(revision 8926)
+++ ipk/source/players_mytube_1_0/usr/lib/enigma2/python/Plugins/Extensions/MyTube/__init__.py	(revision 8932)
@@ -3,6 +3,7 @@
 from Tools.Directories import resolveFilename, SCOPE_PLUGINS, SCOPE_LANGUAGE
 import os,gettext
+import sha
 PluginLanguageDomain = "MyTube"
-PluginLanguagePath = "Extensions/MyTube/po"
+PluginLanguagePath = "Extensions/MyTube/locale"
 
 def localeInit():
@@ -19,4 +20,28 @@
 	return t
 
-localeInit()
-language.addCallback(localeInit)
+def bin2long(s):
+	return reduce( lambda x,y:(x<<8L)+y, map(ord, s))
+
+def long2bin(l):
+	res = ""
+	for byte in range(128):
+		res += chr((l >> (1024 - (byte + 1) * 8)) & 0xff)
+	return res
+
+def rsa_pub1024(src, mod):
+	return long2bin(pow(bin2long(src), 65537, bin2long(mod)))
+	
+def decrypt_block(src, mod):
+	if len(src) != 128 and len(src) != 202:
+		return None
+	dest = rsa_pub1024(src[:128], mod)
+	hash = sha.new(dest[1:107])
+	if len(src) == 202:
+		hash.update(src[131:192])	
+	result = hash.digest()
+	if result == dest[107:127]:
+		return dest
+	return None
+
+#localeInit()
+#language.addCallback(localeInit)
Index: ipk/source/players_mytube_1_0/usr/lib/enigma2/python/Plugins/Extensions/MyTube/plugin.py
===================================================================
--- ipk/source/players_mytube_1_0/usr/lib/enigma2/python/Plugins/Extensions/MyTube/plugin.py	(revision 8926)
+++ ipk/source/players_mytube_1_0/usr/lib/enigma2/python/Plugins/Extensions/MyTube/plugin.py	(revision 8932)
@@ -1,5 +1,4 @@
-from __init__ import _
 from Plugins.Plugin import PluginDescriptor
-from MyTubeService import GoogleSuggestions
+from MyTubeService import GoogleSuggestions, validate_cert, get_rnd
 from MyTubeSearch import ConfigTextWithGoogleSuggestions
 from Tools.BoundFunction import boundFunction
@@ -30,5 +29,5 @@
 from threading import Condition
 
-from Tools.Directories import pathExists, fileExists, resolveFilename, SCOPE_PLUGINS, SCOPE_SKIN_IMAGE, SCOPE_HDD
+from Tools.Directories import pathExists, fileExists, resolveFilename, SCOPE_PLUGINS, SCOPE_SKIN_IMAGE, SCOPE_HDD, SCOPE_CURRENT_PLUGIN
 from Tools.LoadPixmap import LoadPixmap
 from Tools.Downloader import HTTPProgressDownloader, downloadWithProgress
@@ -40,4 +39,26 @@
 
 from Screens.InfoBarGenerics import InfoBarShowHide, InfoBarSeek, InfoBarNotifications, InfoBarServiceNotifications
+from __init__ import bin2long, long2bin, rsa_pub1024, decrypt_block
+
+
+
+class eTPM:
+		TPMD_DT_LEVEL3_CERT = 5
+		TPMD_DT_LEVEL2_CERT = 4
+		def __init__(self):
+			self.TPM = self
+		def getCert(self, *args):
+			return "12345678"
+		def challenge(self, r):
+			return r
+def decrypt_block(a,b):
+		return 80*"-" + a
+def get_rnd():
+		return "12345678"
+def validate_cert(*args):
+		return "12345678"
+
+etpm = eTPM()
+rootkey = ['\x9f', '|', '\xe4', 'G', '\xc9', '\xb4', '\xf4', '#', '&', '\xce', '\xb3', '\xfe', '\xda', '\xc9', 'U', '`', '\xd8', '\x8c', 's', 'o', '\x90', '\x9b', '\\', 'b', '\xc0', '\x89', '\xd1', '\x8c', '\x9e', 'J', 'T', '\xc5', 'X', '\xa1', '\xb8', '\x13', '5', 'E', '\x02', '\xc9', '\xb2', '\xe6', 't', '\x89', '\xde', '\xcd', '\x9d', '\x11', '\xdd', '\xc7', '\xf4', '\xe4', '\xe4', '\xbc', '\xdb', '\x9c', '\xea', '}', '\xad', '\xda', 't', 'r', '\x9b', '\xdc', '\xbc', '\x18', '3', '\xe7', '\xaf', '|', '\xae', '\x0c', '\xe3', '\xb5', '\x84', '\x8d', '\r', '\x8d', '\x9d', '2', '\xd0', '\xce', '\xd5', 'q', '\t', '\x84', 'c', '\xa8', ')', '\x99', '\xdc', '<', '"', 'x', '\xe8', '\x87', '\x8f', '\x02', ';', 'S', 'm', '\xd5', '\xf0', '\xa3', '_', '\xb7', 'T', '\t', '\xde', '\xa7', '\xf1', '\xc9', '\xae', '\x8a', '\xd7', '\xd2', '\xcf', '\xb2', '.', '\x13', '\xfb', '\xac', 'j', '\xdf', '\xb1', '\x1d', ':', '?']
 
 config.plugins.mytube = ConfigSubsection()
@@ -124,5 +145,5 @@
 				[
 				 ("hd", _("HD videos")),
-				 ("most_viewed", _("Most viewed")),
+#				 ("most_viewed", _("Most viewed")),
 				 ("top_rated", _("Top rated")),
 				 ("recently_featured", _("Recently featured")),
@@ -132,5 +153,5 @@
 				 ("most_responded", _("Most responded")),
 				 ("most_recent", _("Most recent"))
-				], "most_viewed")
+				], "top_rated")
 config.plugins.mytube.general.on_movie_stop = ConfigSelection(default = "ask", choices = [
 	("ask", _("Ask user")), ("quit", _("Return to movie list")), ("playnext", _("Play next video")), ("playagain", _("Play video again")) ])
@@ -193,10 +214,11 @@
 class MyTubePlayerMainScreen(Screen, ConfigListScreen):
 	BASE_STD_FEEDURL = "http://gdata.youtube.com/feeds/api/standardfeeds/"
+	Details = {}
 	#(entry, Title, Description, TubeID, thumbnail, PublishedDate,Views,duration,ratings )	
 	skin = """
-		<screen name="MyTubePlayerMainScreen" position="center,center" size="720,576" title="MyTubePlayerMainScreen..." >
-		<eLabel backgroundColor="#32000000" position="0,0" size="720,576" zPosition="-1"/>		
-		<widget name="config" zPosition="2" position="60,60" size="600,50" scrollbarMode="showNever" transparent="1" />
-			<widget source="feedlist" render="Listbox" position="49,110" size="628,385" zPosition="1" scrollbarMode="showOnDemand" transparent="1" >
+		<screen name="MyTubePlayerMainScreen" flags="wfNoBorder" position="0,0" size="720,576" title="MyTubePlayerMainScreen..." >
+			<ePixmap position="0,0" zPosition="-1" size="720,576" pixmap="~/mytubemain_bg.png" alphatest="on" transparent="1" backgroundColor="transparent"/>
+			<widget name="config" zPosition="2" position="60,60" size="600,50" scrollbarMode="showNever" transparent="1" />
+			<widget source="feedlist" render="Listbox" position="49,110" size="628,385" zPosition="1" scrollbarMode="showOnDemand" transparent="1" backgroundPixmap="~/list_bg.png" selectionPixmap="~/list_sel.png" >
 				<convert type="TemplatedMultiContent">
 				{"templates":
@@ -223,7 +245,7 @@
 			<ePixmap pixmap="skin_default/buttons/key_menu.png" position="50,520" zPosition="4" size="35,25" alphatest="on" transparent="1" />
 			<ePixmap position="90,500" size="100,40" zPosition="4" pixmap="~/plugin.png" alphatest="on" transparent="1" />
-			<eLabel backgroundColor="red" position="190,500" size="140,3" zPosition="4"/> 
-			<eLabel backgroundColor="green" position="330,500" size="140,3" zPosition="4"/>
-			<eLabel backgroundColor="yellow" position="470,500" size="140,3" zPosition="2"/>
+			<ePixmap position="190,500" zPosition="4" size="140,40" pixmap="skin_default/buttons/red.png" transparent="1" alphatest="on" />
+			<ePixmap position="330,500" zPosition="4" size="140,40" pixmap="skin_default/buttons/green.png" transparent="1" alphatest="on" />
+			<ePixmap position="470,500" zPosition="4" size="140,40" pixmap="skin_default/buttons/yellow.png" transparent="1" alphatest="on" />
 			<widget name="key_red" position="190,500" zPosition="5" size="140,40" valign="center" halign="center" font="Regular;21" transparent="1" foregroundColor="white" shadowColor="black" shadowOffset="-1,-1" />
 			<widget name="key_green" position="330,500" zPosition="5" size="140,40" valign="center" halign="center" font="Regular;21" transparent="1" foregroundColor="white" shadowColor="black" shadowOffset="-1,-1" />
@@ -235,7 +257,9 @@
 		</screen>"""
 		
-	def __init__(self, session):
+	def __init__(self, session, l2key):
 		Screen.__init__(self, session)
 		self.session = session
+		self.l2key = l2key
+		self.l3key = None
 		self.skin_path = plugin_path
 		self.FeedURL = None
@@ -243,11 +267,17 @@
 		self.currentFeedName = None
 		self.videolist = []
-		self.thumbnails = []
+
 		self.video_playlist = []
 		self.statuslist = []
 		self.mytubeentries = None
+
+		self.thumbnails = []
 		self.index = 0
 		self.maxentries = 0
+
+		self.screenshotList = []
+		self.pixmaps_to_load = []
 		self.picloads = {}
+
 		self.oldfeedentrycount = 0
 		self.appendEntries = False
@@ -261,5 +291,5 @@
 		self.currList = "configlist"
 		self.oldlist = None
-		self.CleanupConsole = None
+
 		self["feedlist"] = List(self.videolist)
 		self["thumbnail"] = Pixmap()
@@ -345,6 +375,10 @@
 		self["statusactions"].setEnabled(False)
 		self["historyactions"].setEnabled(False)
-		self.timer = eTimer()
-		self.timer.callback.append(self.picloadTimeout)
+		
+		self.timer_startDownload = eTimer()
+		self.timer_startDownload.timeout.callback.append(self.downloadThumbnails)
+		self.timer_thumbnails = eTimer()
+		self.timer_thumbnails.timeout.callback.append(self.updateFeedThumbnails)
+
 		self.SearchConfigEntry = None
 		self.searchContextEntries = []
@@ -360,18 +394,52 @@
 	def __onClose(self):
 		del self.Timer
-		del self.timer
+		del self.timer_startDownload
+		del self.timer_thumbnails
+		self.Details = {}
 		self.session.nav.playService(self.lastservice)
 		
 	def layoutFinished(self):
 		self.currList = "status"
-		#self["key_green"].hide()
 		current = self["config"].getCurrent()
 		if current[1].help_window.instance is not None:
 			current[1].help_window.instance.hide()
-		self.statuslist.append(( _("Fetching feed entries"), _("Trying to download the Youtube feed entries. Please wait..." ) ))
-		self["feedlist"].style = "state"
-		self['feedlist'].setList(self.statuslist)
-		self.Timer.start(200)
-
+
+		l3cert = etpm.getCert(eTPM.TPMD_DT_LEVEL3_CERT)
+		if l3cert is None or l3cert is "":
+			self["videoactions"].setEnabled(False)
+			self["searchactions"].setEnabled(False)
+			self["config_actions"].setEnabled(False)
+			self["historyactions"].setEnabled(False)
+			self["statusactions"].setEnabled(True)
+			self.hideSuggestions()
+			self.statuslist = []
+			self.statuslist.append(( _("Genuine Dreambox validation failed!"), _("Verify your Dreambox authenticity by running the genuine dreambox plugin!" ) ))
+			self["feedlist"].style = "state"
+			self['feedlist'].setList(self.statuslist)
+			return
+
+		self.l3key = validate_cert(l3cert, self.l2key)
+		if self.l3key is None:
+			print "l3cert invalid"
+			return
+		rnd = get_rnd()
+		if rnd is None:
+			print "random error"
+			return
+
+		val = etpm.challenge(rnd)
+		result = decrypt_block(val, self.l3key)
+
+		self.statuslist = []
+		if result[80:88] == rnd:
+			self.statuslist.append(( _("Fetching feed entries"), _("Trying to download the Youtube feed entries. Please wait..." ) ))
+			self["feedlist"].style = "state"
+			self['feedlist'].setList(self.statuslist)
+			self.Timer.start(200)
+		else:
+			self.statuslist.append(( _("Genuine Dreambox validation failed!"), _("Verify your Dreambox authenticity by running the genuine dreambox plugin!" ) ))
+			self["feedlist"].style = "state"
+			self['feedlist'].setList(self.statuslist)		
+	
 	def TimerFire(self):
 		self.Timer.stop()
@@ -393,12 +461,7 @@
 	def setState(self,status = None):
 		if status:
-			if self.FirstRun == True:
-				self.appendEntries = False
-				myTubeService.startService()
 			self.currList = "status"
-			self.statuslist = []
 			self["videoactions"].setEnabled(False)
 			self["searchactions"].setEnabled(False)
-			#self["key_green"].hide()
 			self["config_actions"].setEnabled(False)
 			self["historyactions"].setEnabled(False)
@@ -406,40 +469,49 @@
 			self["ButtonBlue"].hide()
 			self["VKeyIcon"].hide()	
-			if self.HistoryWindow is not None:
-				self.HistoryWindow.deactivate()
-				self.HistoryWindow.instance.hide()
-			if status == 'getFeed':
-				self.hideSuggestions()
-				self.statuslist.append(( _("Fetching feed entries"), _("Trying to download the Youtube feed entries. Please wait..." ) ))
+			self.statuslist = []
+			self.hideSuggestions()
+			result = None
+			if self.l3key is not None:
+				rnd = get_rnd()
+				if rnd is None:
+					return
+				val = etpm.challenge(rnd)
+				result = decrypt_block(val, self.l3key)
+			if not result or result[80:88] != rnd:
+				self["key_green"].show()
+				self.statuslist.append(( _("Genuine Dreambox validation failed!"), _("Verify your Dreambox authenticity by running the genuine dreambox plugin!" ) ))
 				self["feedlist"].style = "state"
 				self['feedlist'].setList(self.statuslist)
-			elif status == 'getSearchFeed':
-				self.hideSuggestions()
-				self.statuslist.append(( _("Fetching search entries"), _("Trying to download the Youtube search results. Please wait..." ) ))
+			else:
+				print "Genuine Dreambox validation passed"
+				if self.FirstRun == True:
+					self.appendEntries = False
+					myTubeService.startService()
+				if self.HistoryWindow is not None:
+					self.HistoryWindow.deactivate()
+					self.HistoryWindow.instance.hide()
+				if status == 'getFeed':
+					self.statuslist.append(( _("Fetching feed entries"), _("Trying to download the Youtube feed entries. Please wait..." ) ))
+				elif status == 'getSearchFeed':
+					self.statuslist.append(( _("Fetching search entries"), _("Trying to download the Youtube search results. Please wait..." ) ))
+				elif status == 'Error':
+					self.statuslist.append(( _("An error occured."), _("There was an error getting the feed entries. Please try again." ) ))
+				elif status == 'noVideos':
+					self["key_green"].show()
+					self.statuslist.append(( _("No videos to display"), _("Please select a standard feed or try searching for videos." ) ))
+				elif status == 'byPass':
+					self.statuslist.append(( _("Not fetching feed entries"), _("Please enter your search term." ) ))
+					self["feedlist"].style = "state"
+					self['feedlist'].setList(self.statuslist)
+					self.switchToConfigList()
 				self["feedlist"].style = "state"
 				self['feedlist'].setList(self.statuslist)
-			elif status == 'Error':
-				self.hideSuggestions()
-				self.statuslist.append(( _("An error occured."), _("There was an error getting the feed entries. Please try again." ) ))
-				self["feedlist"].style = "state"
-				self['feedlist'].setList(self.statuslist)
-			elif status == 'noVideos':
-				self["key_green"].show()
-				self.hideSuggestions()
-				self.statuslist.append(( _("No videos to display"), _("Please select a standard feed or try searching for videos." ) ))
-				self["feedlist"].style = "state"
-				self['feedlist'].setList(self.statuslist)
-			elif status == 'byPass':
-				self.statuslist.append(( _("Not fetching feed entries"), _("Please enter your search term." ) ))
-				self["feedlist"].style = "state"
-				self['feedlist'].setList(self.statuslist)
-				self.switchToConfigList()
-			if self.FirstRun == True:
-				if config.plugins.mytube.general.loadFeedOnOpen.value:
-					if config.plugins.mytube.general.startFeed.value == 'hd':
-						self.FeedURL = "http://gdata.youtube.com/feeds/api/videos/-/HD"
-					else:
-						self.FeedURL = self.BASE_STD_FEEDURL + str(config.plugins.mytube.general.startFeed.value)
-					self.getFeed(self.FeedURL, str(config.plugins.mytube.general.startFeed.value))
+				if self.FirstRun == True:
+					if config.plugins.mytube.general.loadFeedOnOpen.value:
+						if config.plugins.mytube.general.startFeed.value == 'hd':
+							self.FeedURL = "http://gdata.youtube.com/feeds/api/videos/-/HD"
+						else:
+							self.FeedURL = self.BASE_STD_FEEDURL + str(config.plugins.mytube.general.startFeed.value)
+						self.getFeed(self.FeedURL, str(config.plugins.mytube.general.startFeed.value))
 
 
@@ -467,5 +539,4 @@
 
 	def handleMenu(self):
-		print "currlist im HandleMenu:",self.currList
 		if self.currList == "configlist":
 			menulist = (
@@ -492,5 +563,4 @@
 	def openMenu(self, answer):
 		answer = answer and answer[1]
-		print "openMenu - ANSWER",answer
 		if answer == "settings":
 			print "settings selected"
@@ -519,5 +589,4 @@
 			self.session.open(MyTubeTasksScreen, self.skin_path , self.tasklist)		
 		elif answer == None:
-			print "No menuentry selected, we should just switch back to old state."
 			self.ScreenClosed()
 	
@@ -530,5 +599,4 @@
 		if self.currList == "historylist":
 			if self.HistoryWindow.status() is False:
-				print "status is FALSE"
 				self.HistoryWindow.activate()
 				self.HistoryWindow.instance.show()
@@ -553,5 +621,4 @@
 	def openStandardFeedClosed(self, answer):
 		answer = answer and answer[1]
-		print "openStandardFeedClosed - ANSWER",answer
 		if answer is not None:
 			if answer == 'hd':
@@ -583,5 +650,5 @@
 
 	def leavePlayer(self):
-		print "self.currList im leavePlayer",self.currList
+		print "leavePlayer"
 		if self.HistoryWindow is not None:
 			self.HistoryWindow.deactivate()
@@ -602,13 +669,9 @@
 	def leavePlayerConfirmed(self, answer):
 		answer = answer and answer[1]
-		print "ANSWER",answer
 		if answer == "quit":
-			cmd = "rm -rf /tmp/*.jpg"
-			self.CleanupConsole = Console()
-			self.CleanupConsole.ePopen(cmd, self.doQuit)
+			self.doQuit()
 		elif answer == "continue":
 			if self.currList == "historylist":
 				if self.HistoryWindow.status() is False:
-					print "status is FALSE"
 					self.HistoryWindow.activate()
 					self.HistoryWindow.instance.show()
@@ -622,8 +685,6 @@
 			self.switchToConfigList()
 		elif answer == None:
-			print "No menuentry selected, we should just switch back to old state."
 			if self.currList == "historylist":
 				if self.HistoryWindow.status() is False:
-					print "status is FALSE"
 					self.HistoryWindow.activate()
 					self.HistoryWindow.instance.show()
@@ -633,5 +694,5 @@
 				self.switchToFeedList()
 
-	def doQuit(self, result, retval,extra_args):
+	def doQuit(self):
 		if self["config"].getCurrent()[1].suggestionsWindow is not None:
 			self.session.deleteDialog(self["config"].getCurrent()[1].suggestionsWindow)
@@ -641,5 +702,4 @@
 			config.plugins.mytube.general.showHelpOnOpen.value = False
 			config.plugins.mytube.general.showHelpOnOpen.save()
-		print "self.History im doQuit:",self.History
 		if not config.plugins.mytube.general.clearHistoryOnClose.value:
 			if self.History and len(self.History):
@@ -650,12 +710,8 @@
 		config.plugins.mytube.general.save()
 		config.plugins.mytube.save()
-		if self.CleanupConsole is not None:
-			if len(self.CleanupConsole.appContainers):
-				for name in self.CleanupConsole.appContainers.keys():
-					self.CleanupConsole.kill(name)
 		self.close()
 			
 	def keyOK(self):
-		print "self.currList----->",self.currList
+		print "self.currList im KeyOK",self.currList
 		if self.currList == "configlist" or self.currList == "suggestionslist":
 			self["config"].invalidateCurrent()
@@ -840,4 +896,5 @@
 			if not append:
 				self[self.currList].setIndex(0)
+			self["feedlist"].updateList(self.videolist)
 		else:
 			self.setState('noVideos')
@@ -919,5 +976,5 @@
 		if feed is not None:
 			self.ytfeed = feed
-		self.loadPreviewpics()
+		self.buildEntryList()
 
 	def getNextEntries(self, result):
@@ -934,4 +991,5 @@
 			print "RELATEDURL--->",myurl
 			if myurl is not None:
+				self.appendEntries = False
 				self.getFeed(myurl, _("Related video entries."))
 
@@ -941,4 +999,5 @@
 			print "RESPONSEURL--->",myurl
 			if myurl is not None:
+				self.appendEntries = False
 				self.getFeed(myurl, _("Response video entries."))
 
@@ -968,114 +1027,70 @@
 		if self.FirstRun == True:	
 			self.FirstRun = False
-		self.loadPreviewpics()
-
-	def loadPreviewpics(self):
-		self.thumbnails = []
+		self.buildEntryList()
+
+	def buildEntryList(self):
 		self.mytubeentries = None
-		self.index = 0
+		self.screenshotList = []
 		self.maxentries = 0
-		self.picloads = {}
 		self.mytubeentries = myTubeService.getEntries()
 		self.maxentries = len(self.mytubeentries)-1
 		if self.mytubeentries and len(self.mytubeentries):
-			currindex = 0
-			for entry in self.mytubeentries:
-				TubeID = entry.getTubeId()
-				thumbnailFile = "/tmp/" + str(TubeID) + ".jpg"
-				currPic = [currindex,TubeID,thumbnailFile,None]
-				self.thumbnails.append(currPic)
-				thumbnailUrl = None
-				thumbnailUrl = entry.getThumbnailUrl(0)
-				if thumbnailUrl is not None:
-					client.downloadPage(thumbnailUrl,thumbnailFile).addCallback(self.fetchFinished,currindex,str(TubeID)).addErrback(self.fetchFailed,currindex,str(TubeID))
-				currindex +=1
-		else:
+			if self.appendEntries == False:
+				self.videolist = []
+				for entry in self.mytubeentries:
+					TubeID = entry.getTubeId()
+					thumbnailUrl = None
+					thumbnailUrl = entry.getThumbnailUrl(0)				
+					if thumbnailUrl is not None:
+						self.screenshotList.append((TubeID,thumbnailUrl))
+					if not self.Details.has_key(TubeID):
+						self.Details[TubeID] = { 'thumbnail': None}
+					self.videolist.append(self.buildEntryComponent(entry, TubeID))
+				if len(self.videolist):
+					self["feedlist"].style = "default"
+					self["feedlist"].disable_callbacks = True
+					self["feedlist"].list = self.videolist
+					self["feedlist"].disable_callbacks = False
+					self["feedlist"].setIndex(0)
+					self["feedlist"].setList(self.videolist)
+					self["feedlist"].updateList(self.videolist)
+					if self.FirstRun == True:	
+						self.switchToConfigList()
+					else:
+						self.switchToFeedList()
+			else:		
+				self.oldfeedentrycount = self["feedlist"].count()
+				for entry in self.mytubeentries:
+					TubeID = entry.getTubeId()
+					thumbnailUrl = None
+					thumbnailUrl = entry.getThumbnailUrl(0)				
+					if thumbnailUrl is not None:
+						self.screenshotList.append((TubeID,thumbnailUrl))
+					if not self.Details.has_key(TubeID):
+						self.Details[TubeID] = { 'thumbnail': None}
+					self.videolist.append(self.buildEntryComponent(entry, TubeID))
+				if len(self.videolist):
+					self["feedlist"].style = "default"
+					old_index = self["feedlist"].index
+					self["feedlist"].disable_callbacks = True
+					self["feedlist"].list = self.videolist
+					self["feedlist"].disable_callbacks = False
+					self["feedlist"].setList(self.videolist)
+					self["feedlist"].setIndex(old_index)
+					self["feedlist"].updateList(self.videolist)
+					self["feedlist"].selectNext()
+					self.switchToFeedList(True)
+			if not self.timer_startDownload.isActive():
+				print "STARRTDOWNLOADTIMER IM BUILDENTRYLIST"
+				self.timer_startDownload.start(5)
+		else:
+			self.setState('Error')
 			pass
-
-	def fetchFailed(self, string, index, id):
-		print "[fetchFailed] for index:" + str(index) + "for YoutubeID:" + id + string.getErrorMessage()
-
-	def fetchFinished(self, string, index, id):
-		print "[fetchFinished] for index:" + str(index) + " for YoutubeID:" + id
-		self.decodePic(index)
-
-	def decodePic(self, index):
-		sc = AVSwitch().getFramebufferScale()
-		self.picloads[index] = ePicLoad()
-		self.picloads[index].PictureData.get().append(boundFunction(self.finish_decode, index))
-		for entry in self.thumbnails:
-			if entry[0] == index:
-				self.index = index
-				thumbnailFile = entry[2]
-				if (os_path.exists(thumbnailFile) == True):
-					#print "[decodePic] DECODING THUMBNAIL for INDEX:"+  str(self.index) + "and file: " + thumbnailFile
-					self.picloads[index].setPara((self["thumbnail"].instance.size().width(), self["thumbnail"].instance.size().height(), sc[0], sc[1], False, 1, "#00000000"))
-					self.picloads[index].startDecode(thumbnailFile)
-				else:
-					print "[decodePic] Thumbnail file NOT FOUND !!!-->:",thumbnailFile
-
-	def finish_decode(self, picindex = None, picInfo=None):
-		#print "finish_decode - of INDEX", picindex
-		ptr = self.picloads[picindex].getData()
-		if ptr != None:
-			print ptr
-			self.thumbnails[picindex][3] = ptr
-			if (os_path.exists(self.thumbnails[picindex][2]) == True):
-				#print "removing", self.thumbnails[picindex][2]
-				remove(self.thumbnails[picindex][2])
-				del self.picloads[picindex]
-				if len(self.picloads) == 0:
-					self.timer.startLongTimer(3)
-
-	def picloadTimeout(self):
-		self.timer.stop()
-		if len(self.picloads) == 0:
-				print "all decodes should be now really finished"
-				self.buildEntryList()
-		else:
-			self.timer.startLongTimer(2)
-
-	def buildEntryList(self):
-		myindex = 0
-		if self.appendEntries == False:
-			self.videolist = []
-			for entry in self.mytubeentries:
-				self.videolist.append(self.buildEntryComponent(entry, myindex))
-				myindex +=1
-			if len(self.videolist):
-				self["feedlist"].style = "default"
-				self["feedlist"].disable_callbacks = True
-				self["feedlist"].list = self.videolist
-				self["feedlist"].disable_callbacks = False
-				self["feedlist"].setIndex(0)
-				self["feedlist"].setList(self.videolist)
-				self["feedlist"].updateList(self.videolist)
-				if self.FirstRun == True:	
-					self.switchToConfigList()
-				else:
-					self.switchToFeedList()
-		else:		
-			self.oldfeedentrycount = self["feedlist"].count()
-			for entry in self.mytubeentries:
-				self.videolist.append(self.buildEntryComponent(entry, myindex))
-				myindex +=1
-			if len(self.videolist):
-				self["feedlist"].style = "default"
-				old_index = self["feedlist"].index
-				self["feedlist"].disable_callbacks = True
-				self["feedlist"].list = self.videolist
-				self["feedlist"].disable_callbacks = False
-				self["feedlist"].setList(self.videolist)
-				self["feedlist"].setIndex(old_index)
-				self["feedlist"].updateList(self.videolist)
-				self["feedlist"].selectNext()
-				self.switchToFeedList(True)
-
 	
-	def buildEntryComponent(self, entry, index):
+	def buildEntryComponent(self, entry,TubeID):
 		Title = entry.getTitle()
 		print "Titel-->",Title
 		Description = entry.getDescription()
-		TubeID = entry.getTubeId()
+		myTubeID = TubeID
 		PublishedDate = entry.getPublishedDate()
 		if PublishedDate is not "unknown":
@@ -1101,6 +1116,8 @@
 		else:
 			ratings = ""
-		thumbnail = self.thumbnails[index][3]
-		return((entry, Title, Description, TubeID, thumbnail, _("Added: ") + str(published), _("Views: ") + str(views), _("Duration: ") + str(duration), _("Ratings: ") + str(ratings) ))	
+		thumbnail = None
+		if self.Details[myTubeID]["thumbnail"]:
+			thumbnail = self.Details[myTubeID]["thumbnail"]
+		return((entry, Title, Description, myTubeID, thumbnail, _("Added: ") + str(published), _("Views: ") + str(views), _("Duration: ") + str(duration), _("Ratings: ") + str(ratings) ))	
 
 	def getNextEntry(self):
@@ -1145,10 +1162,7 @@
 	def showVideoInfo(self):
 		if self.currList == "feedlist":
-			cmd = "rm -rf /tmp/*.jpg"
-			if self.CleanupConsole is None:
-				self.CleanupConsole = Console()
-			self.CleanupConsole.ePopen(cmd, self.openInfoScreen)
-	
-	def openInfoScreen(self, result, retval,extra_args):
+			self.openInfoScreen()
+
+	def openInfoScreen(self):
 		if self.currList == "feedlist":
 			current = self[self.currList].getCurrent()
@@ -1159,10 +1173,85 @@
 					videoinfos = myentry.PrintEntryDetails()
 					self.session.open(MyTubeVideoInfoScreen, self.skin_path, videoinfo = videoinfos )
-		
+
+	def downloadThumbnails(self):
+		self.timer_startDownload.stop()
+		for entry in self.screenshotList:
+			thumbnailUrl = entry[1]
+			tubeid = entry[0]
+			thumbnailFile = "/tmp/"+str(tubeid)+".jpg"
+			if self.Details.has_key(tubeid):
+				if self.Details[tubeid]["thumbnail"] is None:
+					if thumbnailUrl is not None:
+						if tubeid not in self.pixmaps_to_load:
+							self.pixmaps_to_load.append(tubeid)
+							if (os_path.exists(thumbnailFile) == True):
+								self.fetchFinished(False,tubeid)
+							else:
+								client.downloadPage(thumbnailUrl,thumbnailFile).addCallback(self.fetchFinished,str(tubeid)).addErrback(self.fetchFailed,str(tubeid))
+					else:
+						if tubeid not in self.pixmaps_to_load:
+							self.pixmaps_to_load.append(tubeid)
+							self.fetchFinished(False,tubeid, failed = True)
+
+	def fetchFailed(self,string,tubeid):
+		print "thumbnail-fetchFailed for: ",tubeid,string.getErrorMessage()
+		self.fetchFinished(False,tubeid, failed = True)
+
+	def fetchFinished(self,x,tubeid, failed = False):
+		print "thumbnail-fetchFinished for:",tubeid
+		self.pixmaps_to_load.remove(tubeid)
+		if failed:
+			thumbnailFile = resolveFilename(SCOPE_CURRENT_PLUGIN, "Extensions/MyTube/plugin.png")
+		else:
+			thumbnailFile = "/tmp/"+str(tubeid)+".jpg"
+		sc = AVSwitch().getFramebufferScale()
+		if (os_path.exists(thumbnailFile) == True):
+			self.picloads[tubeid] = ePicLoad()
+			self.picloads[tubeid].PictureData.get().append(boundFunction(self.finish_decode, tubeid))
+			self.picloads[tubeid].setPara((self["thumbnail"].instance.size().width(), self["thumbnail"].instance.size().height(), sc[0], sc[1], False, 1, "#00000000"))
+			self.picloads[tubeid].startDecode(thumbnailFile)
+		else:
+			self.pixmaps_to_load.append(tubeid)
+			self.fetchFinished(False,tubeid, failed = True)
+
+	def finish_decode(self,tubeid,info):
+		print "thumbnail finish_decode:", tubeid,info
+		ptr = self.picloads[tubeid].getData()
+		thumbnailFile = "/tmp/"+str(tubeid)+".jpg"
+		if ptr != None:
+			if self.Details.has_key(tubeid):
+				self.Details[tubeid]["thumbnail"] = ptr
+			if (os_path.exists(thumbnailFile) == True):
+				remove(thumbnailFile)
+			del self.picloads[tubeid]
+		else:
+			del self.picloads[tubeid]
+			if self.Details.has_key(tubeid):
+				self.Details[tubeid]["thumbnail"] = None
+		self.timer_thumbnails.start(1)
+
+	def updateFeedThumbnails(self):
+		self.timer_thumbnails.stop()
+		if len(self.picloads) != 0:
+			self.timer_thumbnails.start(1)
+		else:
+			idx = 0
+			for entry in self.videolist:
+				tubeid = entry[3]
+				if self.Details.has_key(tubeid):
+					if self.Details[tubeid]["thumbnail"] is not None:
+						thumbnail = entry[4]
+						if thumbnail == None:
+							myentry = entry[0]
+							self.videolist[idx] = self.buildEntryComponent(myentry, tubeid )
+				idx += 1
+			if self.currList == "feedlist":
+				self["feedlist"].updateList(self.videolist)		
+
 
 class MyTubeVideoInfoScreen(Screen):
 	skin = """
-		<screen name="MyTubeVideoInfoScreen" flags="wfNoBorder" position="center,center" size="720,576" title="MyTubePlayerMainScreen..." >
-			<eLabel backgroundColor="#32000000" position="0,0" size="720,576" zPosition="-1"/>
+		<screen name="MyTubeVideoInfoScreen" flags="wfNoBorder" position="0,0" size="720,576" title="MyTubePlayerMainScreen..." >
+			<ePixmap position="0,0" zPosition="-1" size="720,576" pixmap="~/mytubemain_bg.png" alphatest="on" transparent="1" backgroundColor="transparent"/>
 			<widget name="title" position="60,50" size="600,50" zPosition="5" valign="center" halign="left" font="Regular;21" transparent="1" foregroundColor="white" shadowColor="black" shadowOffset="-1,-1" />
 			<widget name="starsbg" pixmap="~/starsbar_empty.png" position="560,220" zPosition="5" size="100,20" transparent="1" alphatest="on" />
@@ -1335,5 +1424,4 @@
 		ptr = self.picloads[picindex].getData()
 		if ptr != None:
-			print ptr
 			self.thumbnails[picindex][3] = ptr
 			if (os_path.exists(self.thumbnails[picindex][2]) == True):
@@ -1347,5 +1435,4 @@
 		self.timer.stop()
 		if len(self.picloads) == 0:
-				print "all decodes should be now really finished"
 				self.buildInfoList()
 		else:
@@ -1353,5 +1440,4 @@
 
 	def buildInfoList(self):
-		print "blasel"
 		self.infolist = []
 		Thumbail0 = None
@@ -1380,10 +1466,10 @@
 class MyTubeVideoHelpScreen(Screen):
 	skin = """
-		<screen name="MyTubeVideoHelpScreen" flags="wfNoBorder" position="center,center" size="720,576" title="MyTubePlayerMainScreen..." >
-			<eLabel backgroundColor="#32000000" position="0,0" size="720,576" zPosition="-1"/>
+		<screen name="MyTubeVideoHelpScreen" flags="wfNoBorder" position="0,0" size="720,576" title="MyTubePlayerMainScreen..." >
+			<ePixmap position="0,0" zPosition="-1" size="720,576" pixmap="~/mytubemain_bg.png" alphatest="on" transparent="1" backgroundColor="transparent"/>
 			<widget name="title" position="60,50" size="600,50" zPosition="5" valign="center" halign="left" font="Regular;21" transparent="1" foregroundColor="white" shadowColor="black" shadowOffset="-1,-1" />
 			<widget name="detailtext" position="60,120" size="610,370" zPosition="10" font="Regular;21" transparent="1" halign="left" valign="top"/>
 			<ePixmap position="100,500" size="100,40" zPosition="0" pixmap="~/plugin.png" alphatest="on" transparent="1" />
-			<eLabel backgroundColor="red" position="220,500" size="140,3" zPosition="4"/>
+			<ePixmap position="220,500" zPosition="4" size="140,40" pixmap="skin_default/buttons/red.png" transparent="1" alphatest="on" />
 			<widget name="key_red" position="220,500" zPosition="5" size="140,40" valign="center" halign="center" font="Regular;21" transparent="1" foregroundColor="white" shadowColor="black" shadowOffset="-1,-1" />
 		</screen>"""
@@ -1439,6 +1525,6 @@
 	ALLOW_SUSPEND = True
 
-	skin = """<screen name="MyTubePlayer" flags="wfNoBorder" position="center,380" size="720,160" title="InfoBar" backgroundColor="transparent">
-		<eLabel backgroundColor="#32000000" position="0,0" size="720,160" zPosition="-1"/>
+	skin = """<screen name="MyTubePlayer" flags="wfNoBorder" position="0,380" size="720,160" title="InfoBar" backgroundColor="transparent">
+		<ePixmap position="0,0" pixmap="skin_default/info-bg_mp.png" zPosition="-1" size="720,160" />
 		<ePixmap position="29,40" pixmap="skin_default/screws_mp.png" size="665,104" alphatest="on" />
 		<ePixmap position="48,70" pixmap="skin_default/icons/mp_buttons.png" size="108,13" alphatest="on" />
@@ -1578,5 +1664,4 @@
 				self.__setHideTimer()	
 		self.state = self.STATE_PLAYING
-		print "self.state--->",self.state
 		self.session.nav.playService(self.service)
 		if self.shown:
@@ -1586,13 +1671,8 @@
 		print "stopCurrent"
 		self.session.nav.stopService()
-		#if self.state == self.STATE_IDLE:
-		#	return
 		self.state = self.STATE_IDLE
-		print "self.state--->",self.state
-		
 
 	def playpauseService(self):
 		print "playpauseService"
-		#print "self.state--->",self.state
 		if self.state == self.STATE_PLAYING:
 			self.pauseService()
@@ -1603,6 +1683,4 @@
 		print "pauseService"
 		if self.state == self.STATE_PLAYING:
-			#print "self.state--->",self.state
-			print "calling setseekstate pause"
 			self.setSeekState(self.STATE_PAUSED)
 		
@@ -1610,6 +1688,4 @@
 		print "unPauseService"
 		if self.state == self.STATE_PAUSED:
-			#print "self.state--->",self.state
-			print "calling setseekstate playing"
 			self.setSeekState(self.STATE_PLAYING)
 
@@ -1635,9 +1711,6 @@
 		print "seekable status changed!"
 		if not self.isSeekable():
-			#self["SeekActions"].setEnabled(False)
-			print "not seekable, return to play"
 			self.setSeekState(self.STATE_PLAYING)
 		else:
-#			self["SeekActions"].setEnabled(True)
 			print "seekable"
 
@@ -1648,6 +1721,4 @@
 	def setSeekState(self, wantstate):
 		print "setSeekState"
-		#print "current state--->",self.state
-		#print " wanted state--->",wantstate
 		if wantstate == self.STATE_PAUSED:
 			print "trying to switch to Pause- state:",self.STATE_PAUSED
@@ -1667,6 +1738,4 @@
 			if wantstate == self.STATE_PAUSED:
 				print "WANT TO PAUSE"
-				print "current state --->",self.state
-				print "wanted state  --->",wantstate
 				pauseable.pause()
 				self.state = self.STATE_PAUSED
@@ -1676,6 +1745,4 @@
 			elif wantstate == self.STATE_PLAYING:
 				print "WANT TO PLAY"
-				print "current state --->",self.state
-				print "wanted state  --->",wantstate
 				pauseable.unpause()
 				self.state = self.STATE_PLAYING
@@ -1709,5 +1776,4 @@
 	def leavePlayerConfirmed(self, answer):
 		answer = answer and answer[1]
-		print "ANSWER im player leave",answer
 		if answer == "quit":
 			self.close()
@@ -1728,6 +1794,17 @@
 
 def MyTubeMain(session, **kwargs):
-	Console().ePopen(("rm -rf /tmp/*.jpg"))
-	session.open(MyTubePlayerMainScreen)
+	l2 = False
+	l2cert = etpm.getCert(eTPM.TPMD_DT_LEVEL2_CERT)
+	if l2cert is None:
+		print "l2cert not found"
+		return
+	
+	l2key = validate_cert(l2cert, rootkey)
+	if l2key is None:
+		print "l2cert invalid"
+		return
+	l2 = True
+	if l2:
+		session.open(MyTubePlayerMainScreen,l2key)
 
 
