Detect being rate limited

This commit is contained in:
Cadence Ember 2020-09-01 01:17:17 +12:00
parent 951c62d1a9
commit 52b3ae07b1
No known key found for this signature in database
GPG Key ID: 128B99B1B74A6412
1 changed files with 16 additions and 5 deletions

View File

@ -5,6 +5,7 @@ import os
import re
import traceback
import youtube_dl
import urllib.error
from tools.converters import *
from tools.extractors import extract_yt_initial_data
from math import floor
@ -169,11 +170,21 @@ def extract_video(id):
return result
except youtube_dl.DownloadError:
return {
"error": "Video unavailable",
"identifier": "VIDEO_DOES_NOT_EXIST"
}
except youtube_dl.DownloadError as e:
if isinstance(e.exc_info[1], urllib.error.HTTPError):
if e.exc_info[1].code == 429:
result = {
"error": "Could not extract video info. Instance is likely blocked.",
"identifier": "RATE_LIMITED_BY_YOUTUBE"
}
else:
result = {
"error": "Received unexpected status code {}.".format(e.exc_info[1].code)
}
else:
result = {
"error": "Unknown download error."
}
except Exception:
traceback.print_exc()