fix: make clipious and freetube work by adding some made-up metadata
for the most part ok, but there are some (music) videos which won't work
This commit is contained in:
@@ -32,7 +32,7 @@ def send(status, response):
|
||||
return Response(json.dumps(response), mimetype='application/json', status=status)
|
||||
|
||||
def notImplemented(data):
|
||||
return send(501, {'error': f"not recognised/implemented: {'/'.join(data)}"})
|
||||
return send(501, {'error': f"not recognised/implemented in Invidious TL: {'/'.join(data)}"})
|
||||
|
||||
def stats():
|
||||
data_to_send = {
|
||||
@@ -253,13 +253,16 @@ def rebuildFormatsFromYtdlpApi(ydata: dict):
|
||||
if safeTraverse(stream, ["acodec"]) != "none":
|
||||
# audio-only track
|
||||
type = safeTraverse(stream, ["audio_ext"], default=None)
|
||||
fnote = safeTraverse(stream, ["format_note"], default="low")
|
||||
if type is None:
|
||||
type = "mp4"
|
||||
newRow[ "type"] = "audio/" + type
|
||||
newRow[ "audioQuality"] = str(safeTraverse(stream, ["abr"], default=128))
|
||||
newRow["audioSampleRate"] = str(safeTraverse(stream, ["asr"], default=44100))
|
||||
newRow[ "audioChannels"] = safeTraverse(stream, ["audio_channels"])
|
||||
newRow[ "qualityLabel"] = newRow["audioQuality"] + "kbps"
|
||||
newRow[ "audioQuality"] = fnote
|
||||
newRow["audioSampleRate"] = int(safeTraverse(stream, ["asr"], default="44100"))
|
||||
newRow[ "audioChannels"] = int(safeTraverse(stream, ["audio_channels"]))
|
||||
newRow[ "qualityLabel"] = str(safeTraverse(stream, ["abr"], default="?"))
|
||||
newRow[ "resolution"] = f"{fnote} quality"
|
||||
newRow[ "size"] = "0x0"
|
||||
if safeTraverse(stream, ["vcodec"]) != "none":
|
||||
# either video-only or video+audio
|
||||
type = safeTraverse(stream, ["video_ext"], default=None)
|
||||
@@ -276,6 +279,13 @@ def rebuildFormatsFromYtdlpApi(ydata: dict):
|
||||
newRow["clen"] = safeTraverse(params, ["clen"], default=safeTraverse(stream, ["filesize"], default="0"))
|
||||
newRow["lmt"] = safeTraverse(params, ["lmt"], default="0")
|
||||
|
||||
newRow[ "projectionType"] = "RECTANGULAR" # clipious requires this to be mentioned explicitly and cannot be nulled
|
||||
newRow[ "container"] = safeTraverse(stream, ["ext"], default="unknown_container")
|
||||
newRow[ "encoding"] = safeTraverse(invidious_formats.FORMATS, [int("0" + newRow["itag"].split("-")[0]), "ext"], default="unknown_encoding") # not sure this split is necessary
|
||||
newRow[ "quality"] = newRow["qualityLabel"]
|
||||
newRow[ "init"] = "0-1" # dummy values
|
||||
newRow[ "index"] = "2-3" # dummy values
|
||||
|
||||
if vcodec != "none" and acodec != "none":
|
||||
# 360p stream
|
||||
format_streams.append(newRow.copy())
|
||||
|
||||
Reference in New Issue
Block a user