Skip to content
Snippets Groups Projects
Unverified Commit b3b58690 authored by Ned Batchelder's avatar Ned Batchelder Committed by GitHub
Browse files

Merge pull request #21507 from open-craft/guruprasad/youtube-api-missing-referer-fix

[BB-1637] Pass the referer from the client to the YouTube API
parents 9cff06d7 fad200f8
No related branches found
No related tags found
No related merge requests found
......@@ -391,7 +391,7 @@ class VideoStudentViewHandlers(object):
runtime uses a similar REST API that's not an XBlock handler.
"""
from lms.djangoapps.courseware.views.views import load_metadata_from_youtube
metadata, status_code = load_metadata_from_youtube(video_id=self.youtube_id_1_0)
metadata, status_code = load_metadata_from_youtube(video_id=self.youtube_id_1_0, request=request)
response = Response(json.dumps(metadata), status=status_code)
response.content_type = 'application/json'
return response
......
......@@ -289,11 +289,11 @@ def yt_video_metadata(request):
:return: youtube video metadata
"""
video_id = request.GET.get('id', None)
metadata, status_code = load_metadata_from_youtube(video_id)
metadata, status_code = load_metadata_from_youtube(video_id, request)
return Response(metadata, status=status_code, content_type='application/json')
def load_metadata_from_youtube(video_id):
def load_metadata_from_youtube(video_id, request):
"""
Get metadata about a YouTube video.
......@@ -306,9 +306,15 @@ def load_metadata_from_youtube(video_id):
yt_api_key = settings.YOUTUBE_API_KEY
yt_metadata_url = settings.YOUTUBE['METADATA_URL']
yt_timeout = settings.YOUTUBE.get('TEST_TIMEOUT', 1500) / 1000 # converting milli seconds to seconds
headers = {}
http_referer = request.META.get('HTTP_REFERER')
if http_referer:
headers['Referer'] = http_referer
payload = {'id': video_id, 'part': 'contentDetails', 'key': yt_api_key}
try:
res = requests.get(yt_metadata_url, params=payload, timeout=yt_timeout)
res = requests.get(yt_metadata_url, params=payload, timeout=yt_timeout, headers=headers)
status_code = res.status_code
if res.status_code == 200:
try:
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment