# Film obrót 360

VirtualCar360 może generować materiały video prezentujące pojazd w formie automatycznej animacji obrotu 360°. Video jest dodatkową formą prezentacji samochodu i może być wykorzystywane na stronie internetowej dealera, w Playerze, w portalach ogłoszeniowych oraz w kanałach marketingowych klienta.

Domyślne video przedstawia obrót pojazdu o 360 stopni. Materiał trwa około 20 sekund i jest tworzony na podstawie 4 albo 8 zdjęć samochodu. Dzięki temu jedna sesja zdjęciowa może zasilać kilka formatów prezentacji: galerię zdjęć, Player, Player 360 oraz gotowy materiał video.

Klatki wygenerowane przez AI nie są przeznaczone do szczegółowego powiększania. Zoom wykonywany jest na oryginalnych zdjęciach źródłowych, aby zachować możliwie najwyższą jakość detali pojazdu. 

## Zastosowanie video

Video może być wykorzystywane jako:

- dodatkowa forma prezentacji samochodu na stronie pojazdu,
- materiał uzupełniający standardową galerię zdjęć,
- element oferty publikowanej w portalach ogłoszeniowych,
- materiał do wykorzystania w kampaniach marketingowych,
- materiał publikowany na kanale YouTube klienta,
- forma prezentacji pojazdu w systemach CRM lub DMS,
- materiał archiwalny powiązany z konkretną sesją zdjęciową.


W praktyce video pozwala szybko zaprezentować pojazd w atrakcyjnej formie bez konieczności ręcznego montażu filmu.

## Aktywacja usługi video

Aby rozpocząć korzystanie z funkcji video, należy skontaktować się z supportem VirtualCar360.

W zgłoszeniu warto wskazać:

- konto lub lokalizację, dla której video ma zostać aktywowane,
- czy video ma być generowane automatycznie po każdej sesji,
- czy materiał ma być zapisywany wyłącznie w systemie VirtualCar360 i Vimeo,
- czy video ma być również przesyłane na kanał YouTube klienta,
- dane potrzebne do konfiguracji publikacji na YouTube, jeżeli taka opcja ma być aktywna.


Po aktywacji usługi video materiały mogą być generowane automatycznie po wykonaniu sesji zdjęciowej pojazdu.

## Domyślny format video

Domyślnie video przedstawia obrót samochodu o 360 stopni.

Typowe parametry materiału:

| Parametr | Wartość |
|  --- | --- |
| Typ prezentacji | Obrót 360° samochodu |
| Czas trwania | około 20 sekund |
| Źródło materiału | 4 albo 8 zdjęć pojazdu |
| Hosting | VirtualCar360 oraz Vimeo |
| YouTube | opcjonalnie, na życzenie klienta |


Video jest generowane automatycznie na podstawie zdjęć wykonanych w ramach sesji VirtualCar360. Nie wymaga ręcznego montażu po stronie klienta.

## Generowanie video

Proces generowania video wygląda następująco:

1. W systemie VirtualCar360 wykonywana jest sesja zdjęciowa pojazdu.
2. System wybiera 4 albo 8 zdjęć źródłowych.
3. Na podstawie tych zdjęć generowany jest materiał video z obrotem pojazdu 360°.
4. Film jest zapisywany w systemie VirtualCar360.
5. Film jest zapisywany również na Vimeo.
6. Jeżeli klient ma aktywną integrację YouTube, film może zostać automatycznie przesłany na kanał YouTube klienta.
7. Linki do filmu są przypisywane do galerii pojazdu i mogą być widoczne w Playerze oraz dostępne przez API.


Zakres dostępnych linków video zależy od konfiguracji konta. Standardowo materiał video jest zapisywany w systemie VirtualCar360 oraz na Vimeo. Automatyczna publikacja na YouTube wymaga dodatkowej konfiguracji po stronie klienta. 

## Hosting video

Materiały video mogą być dostępne w kilku miejscach.

| Platforma | Opis |
|  --- | --- |
| VirtualCar360 | Wewnętrzny system VirtualCar360, w którym przechowywany jest materiał powiązany z galerią pojazdu. |
| Vimeo | Zewnętrzna platforma video wykorzystywana do hostingu materiału. |
| YouTube | Opcjonalny kanał YouTube klienta, na który video może być automatycznie przesyłane po wygenerowaniu sesji. |


## YouTube klienta

Na życzenie klienta VirtualCar360 może zostać skonfigurowany tak, aby po wygenerowaniu sesji video było automatycznie przesyłane na konto YouTube klienta.

Taka konfiguracja wymaga wcześniejszego przygotowania dostępu do kanału YouTube oraz uzgodnienia sposobu publikacji materiałów.

Przykładowy scenariusz:

1. Dealer wykonuje sesję zdjęciową pojazdu.
2. VirtualCar360 generuje video z obrotem samochodu.
3. Video zostaje zapisane w systemie VirtualCar360.
4. Video zostaje zapisane na Vimeo.
5. Video zostaje automatycznie przesłane na kanał YouTube klienta.
6. Link do YouTube zostaje przypisany do galerii pojazdu.
7. Link może być wykorzystany na stronie, w Playerze lub w portalu ogłoszeniowym.


Automatyczna publikacja materiałów video na YouTube wymaga wcześniejszej konfiguracji integracji oraz autoryzacji konta YouTube klienta. 

## Video w Playerze

Jeżeli dla galerii pojazdu dostępne jest video, linki do materiałów video mogą być widoczne w Playerze.

Player może prezentować linki do:

- video w systemie VirtualCar360,
- video na Vimeo,
- video na YouTube klienta.


Zakres wyświetlanych linków zależy od tego, które platformy zostały skonfigurowane dla danej lokalizacji oraz konkretnej galerii pojazdu.

Video w Playerze może pełnić funkcję dodatkowej formy prezentacji samochodu obok zdjęć, hotspotów, Playera 360 i certyfikatu pojazdu.

## Video w API

Jeżeli video jest dostępne dla galerii, endpoint pobierający dane galerii może zwrócić informacje o materiałach video.

W API pole `video` może być zwracane jako string zawierający JSON. Przed użyciem należy je sparsować.

Przykładowa wartość pola `video` w odpowiedzi API:

```json
{
  "video": "{\"virtualcar\":\"https://virtualcar360.pl/video/example\",\"vimeo\":\"https://vimeo.com/1185086568/3943c5fe00\",\"youtube\":\"https://youtu.be/mQRMs7IyYtk\"}"
}
```

Po sparsowaniu wartość może przyjąć postać obiektu:

```json
{
  "virtualcar": "https://virtualcar360.pl/video/example",
  "vimeo": "https://vimeo.com/1185086568/3943c5fe00",
  "youtube": "https://youtu.be/mQRMs7IyYtk"
}
```

Informacja
Nie każda galeria musi posiadać wszystkie linki. Jeżeli YouTube nie został skonfigurowany, pole `youtube` może nie być dostępne. Jeżeli video nie zostało wygenerowane, pole `video` może mieć wartość `null`.

## Przykład obsługi pola `video` w JavaScript

```js
const response = await fetch(
  'https://img-out.virtualcar360.pl/api/v6/virtual-360/image-set/?carId=10209937&key=TWOJ_KLUCZ_API'
);

const data = await response.json();

if (data.video) {
  const video = JSON.parse(data.video);

  if (video.virtualcar) {
    console.log('VirtualCar360 video:', video.virtualcar);
  }

  if (video.vimeo) {
    console.log('Vimeo video:', video.vimeo);
  }

  if (video.youtube) {
    console.log('YouTube video:', video.youtube);
  }
}
```

## Przykład wyświetlenia linków video

```html
<div class="vehicle-video-links">
  <a href="https://virtualcar360.pl/video/example" target="_blank" rel="noopener">
    Zobacz video w VirtualCar360
  </a>

  <a href="https://vimeo.com/1185086568/3943c5fe00" target="_blank" rel="noopener">
    Zobacz video na Vimeo
  </a>

  <a href="https://youtu.be/mQRMs7IyYtk" target="_blank" rel="noopener">
    Zobacz video na YouTube
  </a>
</div>
```

## Video w portalach ogłoszeniowych

Video może być wykorzystywane również poza stroną dealera. Link do filmu można dodać do oferty w portalach ogłoszeniowych, jeżeli dany portal obsługuje materiały video lub zewnętrzne linki video.

Przykładowe zastosowania:

- dodanie linku YouTube do ogłoszenia,
- wykorzystanie filmu w portalu ogłoszeniowym,
- wykorzystanie filmu w kampanii reklamowej,
- publikacja filmu w mediach społecznościowych,
- osadzenie filmu na stronie szczegółów pojazdu.


W przypadku portali takich jak Otomoto lub inne serwisy ogłoszeniowe, możliwość dodania filmu zależy od funkcji dostępnych w danym portalu oraz konfiguracji konta klienta.

## Najczęstsze scenariusze użycia

### Video jako uzupełnienie Playera

Video może być wyświetlane obok Playera lub jako dodatkowy przycisk w sekcji multimediów pojazdu.

### Video jako materiał na YouTube

Jeżeli skonfigurowano integrację z YouTube, film może zostać automatycznie przesłany na kanał klienta i wykorzystany w komunikacji marketingowej.

### Video jako element ogłoszenia

Link do filmu można wykorzystać w portalach ogłoszeniowych, jeżeli portal umożliwia dodawanie linków video.

### Video jako materiał archiwalny

Wideo może zostać zapisane razem z galerią pojazdu i stanowić archiwalny zapis prezentacji samochodu z konkretnej sesji.

## Dobre praktyki

- Skontaktuj się z supportem przed wdrożeniem video, aby aktywować usługę dla odpowiedniej lokalizacji.
- Ustal, czy video ma być generowane automatycznie dla każdej sesji.
- Jeżeli film ma być publikowany na YouTube, przygotuj wcześniej dostęp do kanału klienta.
- W interfejsie klienta sprawdzaj, czy pole `video` nie jest `null`.
- Nie zakładaj, że każda galeria posiada link do YouTube.
- W portalach ogłoszeniowych używaj linku do platformy obsługiwanej przez dany portal.
- Jeżeli prezentujesz kilka linków video, oznacz jasno, do której platformy prowadzi każdy link.


## Najczęstsze problemy

### Video nie jest dostępne dla galerii

Sprawdź, czy:

- funkcja video została aktywowana przez support,
- dla danej lokalizacji włączono generowanie video,
- sesja została poprawnie przetworzona,
- video zostało już wygenerowane,
- galeria posiada przypisane linki video.


### Brak linku YouTube

Link YouTube jest dostępny tylko wtedy, gdy klient ma skonfigurowaną integrację z kanałem YouTube. Jeżeli integracja nie została aktywowana, video może być dostępne tylko w systemie VirtualCar360 i na Vimeo.

### Pole `video` jest `null`

Jeżeli pole `video` ma wartość `null`, oznacza to, że dla danej galerii nie ma dostępnego materiału video albo nie został on jeszcze wygenerowany.

### Nie można sparsować pola `video`

W API pole `video` może być stringiem zawierającym JSON. Przed odczytaniem wartości należy wykonać `JSON.parse()`.

```js
const video = data.video ? JSON.parse(data.video) : null;
```

## Minimalny przykład obsługi video

```js
async function getVehicleVideo(carId, apiKey) {
  const response = await fetch(
    `https://img-out.virtualcar360.pl/api/v6/virtual-360/image-set/?carId=${carId}&key=${apiKey}`
  );

  const data = await response.json();

  if (!data.video) {
    return null;
  }

  return JSON.parse(data.video);
}

const video = await getVehicleVideo(10209937, 'TWOJ_KLUCZ_API');

if (video?.youtube) {
  window.open(video.youtube, '_blank', 'noopener');
}
```