diff --git a/src/invidious/routes/channels.cr b/src/invidious/routes/channels.cr
index 29748cd0..cb80d2b4 100644
--- a/src/invidious/routes/channels.cr
+++ b/src/invidious/routes/channels.cr
@@ -48,7 +48,6 @@ module Invidious::Routes::Channels
end
locale, user, subscriptions, continuation, ucid, channel = data
- sort_options = {"last", "oldest", "newest"}
sort_by = env.params.query["sort_by"]?.try &.downcase
sort_by ||= "last"
diff --git a/src/invidious/views/channel.ecr b/src/invidious/views/channel.ecr
index f285358e..cad0a568 100644
--- a/src/invidious/views/channel.ecr
+++ b/src/invidious/views/channel.ecr
@@ -1,116 +1,6 @@
-<% ucid = channel.ucid %>
-<% author = HTML.escape(channel.author) %>
+<% content_type = 0 %>
-<% content_for "header" do %>
-
<%= author %> - Invidious
-
-<% end %>
-
-<% if channel.banner %>
-
-

">
-
-
-
-
-
-<% end %>
-
-
-
-
-
.request_target %>)
-
<%= author %>
-
-
-
-
-
-
-
-
<%= channel.description_html %>
-
-
-
-
- <% sub_count_text = number_to_short_text(channel.sub_count) %>
- <%= rendered "components/subscribe_widget" %>
-
-
-
-
-
-
-
+<%= rendered "components/channel-information" %>
<% items.each do |item| %>
diff --git a/src/invidious/views/community.ecr b/src/invidious/views/community.ecr
index 15d8ed1e..3288f6b7 100644
--- a/src/invidious/views/community.ecr
+++ b/src/invidious/views/community.ecr
@@ -1,71 +1,9 @@
-<% ucid = channel.ucid %>
-<% author = HTML.escape(channel.author) %>
-
-<% content_for "header" do %>
-
<%= author %> - Invidious
-<% end %>
-
-<% if channel.banner %>
-
-

">
-
-
-
-
-
-<% end %>
-
-
-
-
-
.request_target %>)
-
<%= author %>
-
-
-
-
-
-
-
-
<%= XML.parse_html(channel.description_html).xpath_node(%q(.//pre)).try &.content %>
-
-
-
-
- <% sub_count_text = number_to_short_text(channel.sub_count) %>
- <%= rendered "components/subscribe_widget" %>
-
-
-
-
-
-
-
+<% content_type = 2 %>
+<%
+# Make compiler happy
+%>
+<% sort_options = Tuple.new %>
+<%= rendered "components/channel-information" %>
<% if error_message %>
diff --git a/src/invidious/views/playlists.ecr b/src/invidious/views/playlists.ecr
index 1245256f..b5e094d8 100644
--- a/src/invidious/views/playlists.ecr
+++ b/src/invidious/views/playlists.ecr
@@ -1,90 +1,6 @@
-<% ucid = channel.ucid %>
-<% author = HTML.escape(channel.author) %>
+<% content_type = 1 %>
-<% content_for "header" do %>
-
<%= author %> - Invidious
-<% end %>
-
-<% if channel.banner %>
-
-

">
-
-
-
-
-
-<% end %>
-
-
-
-
-
.request_target %>)
-
<%= author %>
-
-
-
-
-
-
-
-
<%= XML.parse_html(channel.description_html).xpath_node(%q(.//pre)).try &.content if !channel.description_html.empty? %>
-
-
-
-
- <% sub_count_text = number_to_short_text(channel.sub_count) %>
- <%= rendered "components/subscribe_widget" %>
-
-
-
-
-
-
-
-
-
-
- <% if !channel.auto_generated %>
- <%= translate(locale, "Playlists") %>
- <% end %>
-
-
-
-
-
-
- <% {"last", "oldest", "newest"}.each do |sort| %>
-
- <% end %>
-
-
-
-
-
-
-
+<%= rendered "components/channel-information" %>
<% items.each do |item| %>