I am building a web application using Flask and Google App Engine. One of the pages in this web application makes a call via YouTube APIs to get videos given a search term.
Figured it out.
I put the following at the start of my python file
import sys
reload(sys)
sys.setdefaultencoding("utf-8")
From the docs: Jinja2 is using Unicode internally which means that you have to pass Unicode objects to the render function or bytestrings that only consist of ASCII characters.
A normal string in Python 2.x is a bytestring. To make it unicode use:
byte_string = 'a Python string which contains non-ascii data like €äãü'
unicode_string = byte_string.decode('utf-8')
More: http://blog.notdot.net/2010/07/Getting-unicode-right-in-Python