App: scelta canale YouTube MLTV/società, privacy e condivisione link.

Premium Full può forzare il canale piattaforma; visibilità non in elenco o privato;
share_url unificato per Match Live TV e YouTube.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
2026-06-02 22:52:07 +02:00
parent 6ac4db98bb
commit 1fb5cd5aa2
14 changed files with 362 additions and 68 deletions

View File

@@ -118,7 +118,7 @@ module Api
end
def session_params
params.permit(:platform, :privacy_status, :quality_preset, :target_bitrate, :target_fps)
params.permit(:platform, :privacy_status, :quality_preset, :target_bitrate, :target_fps, :youtube_channel)
end
def session_json(session, detail: false)
@@ -130,6 +130,8 @@ module Api
rtmp_ingest_url: session.rtmp_ingest_url,
hls_playback_url: session.hls_playback_url,
watch_page_url: session.watch_page_url,
share_url: session.share_url,
youtube_watch_url: session.youtube_watch_url,
youtube_broadcast_id: session.youtube_broadcast_id,
privacy_status: session.privacy_status,
quality_preset: session.quality_preset,

View File

@@ -71,6 +71,7 @@ module Api
def team_json(team, detail: false)
ent = team.entitlements
yt = Youtube::TeamStatus.new(team)
resolver = Youtube::CredentialResolver.new(team)
data = {
id: team.id,
name: team.name,
@@ -84,6 +85,9 @@ module Api
youtube_selectable: yt.selectable?,
youtube_channel_title: yt.channel_title,
youtube_uses_platform_channel: yt.uses_platform_channel?,
youtube_platform_available: resolver.platform_available?,
youtube_team_channel_available: resolver.team_channel_available?,
youtube_team_channel_title: team.youtube_credential&.channel_title,
plan_slug: ent.plan.slug,
plan_name: ent.plan.name,
premium_active: ent.premium_active?,