@extends('layout', ['autoRefresh' => $series->videos->contains(fn($v) => $v->isProcessing())]) @section('title', $series->name) @section('content')

← {{ $series->channel->name }}

{{ $series->name }} {{ $series->status }} @if($series->viral)🔥@endif

Topic: {{ $series->topic }}

@if(!empty($series->topic_pool))

Rotating {{ count($series->topic_pool) }} topics (next: “{{ \Illuminate\Support\Str::limit($series->topic_pool[$series->topic_pool_cursor % count($series->topic_pool)], 60) }}”)

@endif

{{ ucfirst($series->cadence) }}{{ $series->times() ? ' at ' . implode(', ', $series->times()) : '' }} · {{ $series->auto_publish ? 'auto-publish' : 'manual publish' }} · {{ $series->targets->count() }} channel target(s)

@if($series->next_run_at)

Next run: {{ $series->next_run_at->diffForHumans() }} ({{ $series->next_run_at->format('M j, H:i') }})

@endif @php $costed = $series->videos->whereNotNull('cost'); @endphp @if($costed->isNotEmpty())

Est. cost: {{ config('faceless.costs.currency', '$') }}{{ number_format($costed->sum('cost'), 2) }} total · {{ config('faceless.costs.currency', '$') }}{{ number_format($costed->avg('cost'), 2) }} avg over {{ $costed->count() }} videos

@endif
@csrf
@csrf
@csrf
@csrf @method('DELETE')

Publish targets

Each target generates its own video in that language/voice and posts to that channel. Same topic, localized per channel.

@if($series->targets->isNotEmpty())
@foreach($series->targets as $target)

{{ $target->channel->name }}

🗣 {{ $target->language }}@if($target->voice_id) · voice {{ \Illuminate\Support\Str::limit($target->voice_id, 10) }}@endif

{{ $target->platforms ? implode(', ', array_map('ucfirst', $target->platforms)) : 'all connected' }}

@csrf @method('DELETE')
@endforeach
@endif
@csrf
@foreach(['youtube','instagram','tiktok'] as $p) @endforeach

Videos from this series

@if($series->videos->isEmpty())

None yet. Click “Run now” to generate the first one.

@else
@foreach($series->videos->sortByDesc('id') as $video)
poster_path) style="background-image:url('{{ route('videos.poster', $video) }}')" @endif> @if($video->isProcessing())
{{ $video->progress }}%
@elseif($video->status === 'failed')⚠️ @elseif(!$video->poster_path)—@endif

{{ $video->title ?: $video->topic }}

{{ $video->status }} · {{ $video->language }} @if($video->seriesTarget)· {{ $video->seriesTarget->channel->name }}@endif
@endforeach
@endif @endsection