Non-English characters are not printed correctly if BeautifulSoup cannot autodetect the encoding. Usually, BeautifulSoup is very good at the autodetecting document’s encoding. BeautifulSoup uses a sub-library called "Unicode, Dammit" to detect a document’s encoding and convert it to Unicode. However, if you know the document's encoding, you should pass it to the BeautifulSoup constructor as from_encoding.
Since you are trying to access YouTube, you can try "UTF-8" as encoding.
Try the following code and it should work.
url = "https://www.youtube.com/watch?v=_XQaK3BfLxY"
request = urllib.request.Request(url, None, headers)
response = urllib.request.urlopen(request)
soup = BeautifulSoup(response, 'html5lib', from_encoding="utf-8")