diff --git a/src/invidious/comments.cr b/src/invidious/comments.cr
index ab9fcc8b..e2c7b3a0 100644
--- a/src/invidious/comments.cr
+++ b/src/invidious/comments.cr
@@ -587,7 +587,7 @@ def content_to_comment_html(content)
end
end
- text = %(#{text})
+ text = %(#{reduce_uri(url)})
elsif watch_endpoint = run["navigationEndpoint"]["watchEndpoint"]?
length_seconds = watch_endpoint["startTimeSeconds"]?
video_id = watch_endpoint["videoId"].as_s
@@ -595,10 +595,10 @@ def content_to_comment_html(content)
if length_seconds && length_seconds.as_i > 0
text = %(#{text})
else
- text = %(#{text})
+ text = %(#{reduce_uri("/watch?v=#{video_id}")})
end
elsif url = run.dig?("navigationEndpoint", "commandMetadata", "webCommandMetadata", "url").try &.as_s
- text = %(#{text})
+ text = %(#{reduce_uri(url)})
end
end
diff --git a/src/invidious/helpers/utils.cr b/src/invidious/helpers/utils.cr
index a58a21b1..f8a7873d 100644
--- a/src/invidious/helpers/utils.cr
+++ b/src/invidious/helpers/utils.cr
@@ -365,3 +365,14 @@ def fetch_random_instance
return filtered_instance_list.sample(1)[0]
end
+
+def reduce_uri(uri : URI | String, max_length : Int32? = 50, suffix : String? = "...") : String
+ str = uri.to_s.sub(/https?:\/\//, "")
+ if !max_length.nil? && str.size > max_length
+ str = str[0, max_length]
+ if !suffix.nil?
+ str = "#{str}#{suffix}"
+ end
+ end
+ return str
+end