diff --git a/app/models/broadcast_recording.rb b/app/models/broadcast_recording.rb
index a7add7d..679df7e 100644
--- a/app/models/broadcast_recording.rb
+++ b/app/models/broadcast_recording.rb
@@ -18,4 +18,8 @@ class BroadcastRecording < ApplicationRecord
def download_file_name
"#{broadcast_name}_Date_#{created_at.in_time_zone(broadcast.shoot_location_time_zone).strftime("%Y-%m-%d")}_Time_#{created_at.in_time_zone(broadcast.shoot_location_time_zone).strftime("%T")}".parameterize
end
+
+ def thumbnail_url(width = 300)
+ "https://image.mux.com/#{asset_playback_uid}/thumbnail.jpg?width=#{width}"
+ end
end
diff --git a/app/views/broadcasts/_broadcast_recordings.html.erb b/app/views/broadcasts/_broadcast_recordings.html.erb
index 73f6f91..4041849 100644
--- a/app/views/broadcasts/_broadcast_recordings.html.erb
+++ b/app/views/broadcasts/_broadcast_recordings.html.erb
@@ -3,10 +3,11 @@
<% recordings.each do |recording| %>
-
- <%= link_to(recording.download_file_name, recording.download_url, target: "_blank") %>
+ <%= link_to(recording.download_file_name, recording.download_url, target: "_blank") %>
<% if (controller.class.module_parent.to_s != "Public" && policy(BroadcastRecording).destroy?) %>
<%= link_to "Hide", [broadcast.project, broadcast, recording], class: "btn-sm btn-primary ml-1 text-decoration-none", remote: true, method: :delete, data: { confirm: t('.confirm_hide') } %>
<% end %>
+ <%= image_tag(recording.thumbnail_url, class: 'img-thumbnail img-fluid mt-2 mb-2') %>
<% end %>
diff --git a/spec/features/user_managing_broadcasts_spec.rb b/spec/features/user_managing_broadcasts_spec.rb
index 9c40b71..3146d66 100644
--- a/spec/features/user_managing_broadcasts_spec.rb
+++ b/spec/features/user_managing_broadcasts_spec.rb
@@ -223,6 +223,18 @@ feature 'User managing broadcasts' do
expect(page).to have_content("Recording of the live stream will appear here")
end
+ scenario 'Broadcast recording preview thumbnail is shown' do
+ broadcast = create(:broadcast, :with_stream, :with_files, project: project)
+ recording = create(:broadcast_recording, broadcast: broadcast, asset_uid: "another_asset_uid")
+
+ visit project_broadcast_path(project, broadcast)
+
+ click_on 'Previous Sessions'
+
+ expect(page).to have_css('img.img-thumbnail')
+ expect(page.find('img.img-thumbnail')['src']).to match recording.asset_playback_uid
+ end
+
context 'When the user is associate' do
let(:current_user) { create(:user, :associate) }