viStream Customer API (1.0.0)

Download OpenAPI specification:Download

viStream Customer API ile videolarınızı sisteme yükleyebilirsiniz. Mp4 veya HLS formatında video çıktılarınızı alabilirsiniz. "Public API" haricindeki diğer tüm endpointler için Bearer Token alınması gerekmektedir. "Auth" klasörü içerisindeki "Login" endpointini kullanarak Bearer token alabilirsiniz. Player İçin Gerekli Kütüphaneler

Player Kod Örneği Bu link üzerinde plyr.js demosuna erişebilirsiniz. Bu kod örneği ile hls formatındaki videolarınızı oynatabilirsiniz. Player CSS Özelleştirme Bu link üzerinden özelleştirme seçeneklerini inceleyebilirsiniz. Player JS Özelleştirme Bu link üzerinden javascript seçeneklerini inceleyebilirsiniz.

Uyarı: Video ile ilişkili endpointlerde "id" kullanımı yakında sona erecektir. İlgili videonun response içeriğinde dönen "uuid" anahtarının parametre olarak kullanılması gerekmektedir.

Public API

Bu klasör içerisinde bulunan endpointler herhangi bir Auth işlemi yapılmaksızın çalışır. Bazı endpointler client_secret talep edebilir. Bu anahtar size özel olarak iletilecektir.

Show Video

Bu endpoint ile video id'si iletilerek video erişim linkine erişebilirsiniz.

Authorizations:
bearerAuth
query Parameters
client_secret
required
string
Example: client_secret=989aa122986cdfbb473b36f03e802b70ca5645a7

Responses

Request samples

var client = new HttpClient();
var request = new HttpRequestMessage(HttpMethod.Get, "https://vistream.api.virtaragroup.com.tr/api/v1/public/video/{{uuid}}?client_secret={SECRET}");
var response = await client.SendAsync(request);
response.EnsureSuccessStatusCode();
Console.WriteLine(await response.Content.ReadAsStringAsync());

Response samples

Content type
application/json
{}

Auth

Bu endpointler ile kullanıcı işlemleri yapılmaktadır. "Public API" haricindeki diğer endpointlere erişilmesi amacıyla Bearer Token gerekmektedir. Baerer Token'ınıza erişmek, kontrol etmek veya hesap şifresi değiştirmek amacıyla bu endpointleri kullanabilirsiniz.

Login

Bu endpoint ile token bilginize erişebilirsiniz.

Authorizations:
bearerAuth
Request Body schema: application/json
email
required
string
password
required
string

Responses

Request samples

Content type
application/json
{
  • "email": "demo@virtaragroup.com.tr",
  • "password": "demo1234"
}

Response samples

Content type
application/json
{
  • "message": null,
  • "session": {
    },
  • "status": true,
  • "status_code": 200,
  • "token": {
    }
}

Check

Login işleminin hala geçerli olup olmadığını kontrol etmek için kullanabilirsiniz. HTTP_STATUS=200 dönmesi durumunda geçerli bir auth bilgisi bulunmaktadır.

Authorizations:
bearerAuth
Request Body schema: application/json
Schema not provided

Responses

Request samples

Content type
application/json
""

Response samples

Content type
application/json
{
  • "message": null,
  • "session": null,
  • "type": "object",
  • "properties": {
    }
}

Change Password

Kullancı şifresinin değiştirilmesi amacıyla bu endpointi kullanabilirsiniz.

Authorizations:
bearerAuth
Request Body schema: application/json
current_password
required
string

Güncel parola

password
required
string

Yeni parola

password_confirmation
required
string

Yeni parola (tekrar)

Responses

Request samples

Content type
application/json
{
  • "current_password": "123456",
  • "password": "1234",
  • "password_confirmation": "1234"
}

Response samples

Content type
application/json
{
  • "data": {
    },
  • "message": null,
  • "session": null,
  • "type": "object",
  • "properties": {
    }
}

Directory

Sistemde yer alan video klasörleri ile işlemler yapabilmek için bu endpointleri kullanabilirsiniz.

List

Klasörleri listelemek için bu endpointi kullanabilirsiniz. Eğer belirli bir klasör içerisindeki klasörleri listelemek isterseniz klasör id'sini parent_id anahtarı ile iletebilirsiniz. parent_id anahtarı zorunlu değildir.

Authorizations:
bearerAuth
query Parameters
parent_id
String or null
Example: parent_id=1

Belirli bir klasör altındaki klasörleri listelemek istiyorsanız klasör id gönderebilirsiniz.

Responses

Request samples

var client = new HttpClient();
var request = new HttpRequestMessage(HttpMethod.Get, "https://vistream.api.virtaragroup.com.tr/api/v1/directory");
var response = await client.SendAsync(request);
response.EnsureSuccessStatusCode();
Console.WriteLine(await response.Content.ReadAsStringAsync());

Response samples

Content type
application/json
{
  • "data": [
    ],
  • "links": {},
  • "message": null,
  • "meta": {
    },
  • "session": {
    },
  • "status": true,
  • "status_code": 200
}

Add

Yeni bir klasör oluşturmak için bu endpointi kullanabilirsiniz. Eğer bir klasör altında klasör oluşturmak isterseniz parent_id anahtarına klasör id'si eklemeniz gerekmektedir.

Authorizations:
bearerAuth
Request Body schema: application/json
parent_id
Int or null

Bir klasörün başka bir klasör altında oluşturulmasını istiyorsanız ana klasör id'sini gönderebilirsiniz.

title
required
String

Klasöre vermek istediğiniz adı belirtiniz.

Responses

Request samples

Content type
application/json
{
  • "parent_id": null,
  • "example": "Deneme"
}

Response samples

Content type
application/json
{
  • "data": {
    },
  • "message": null,
  • "session": {
    },
  • "status": true,
  • "status_code": 201
}

List Tree

Klasörleri içerisinde dahil olan klasörler ile listelemek için bu endpointi kullanabilirsiniz.

Authorizations:
bearerAuth

Responses

Request samples

var client = new HttpClient();
var request = new HttpRequestMessage(HttpMethod.Get, "https://vistream.api.virtaragroup.com.tr/api/v1/directory/tree");
var response = await client.SendAsync(request);
response.EnsureSuccessStatusCode();
Console.WriteLine(await response.Content.ReadAsStringAsync());

Response samples

Content type
application/json
{
  • "data": [
    ],
  • "message": null,
  • "session": {
    },
  • "status": true,
  • "status_code": 200
}

Show

Kalsör hakkında bilgi alabilmek için bu endpointi kullanabilirsiniz.

Authorizations:
bearerAuth

Responses

Request samples

var client = new HttpClient();
var request = new HttpRequestMessage(HttpMethod.Get, "https://vistream.api.virtaragroup.com.tr/api/v1/directory/1");
var response = await client.SendAsync(request);
response.EnsureSuccessStatusCode();
Console.WriteLine(await response.Content.ReadAsStringAsync());

Response samples

Content type
application/json
{
  • "data": {
    },
  • "message": null,
  • "session": {
    },
  • "status": true,
  • "status_code": 200
}

Delete

Klasörü silmek için bu endpointi kullanabilirsiniz.

Authorizations:
bearerAuth

Responses

Request samples

var client = new HttpClient();
var request = new HttpRequestMessage(HttpMethod.Delete, "https://vistream.api.virtaragroup.com.tr/api/v1/directory/1");
var response = await client.SendAsync(request);
response.EnsureSuccessStatusCode();
Console.WriteLine(await response.Content.ReadAsStringAsync());

Response samples

Content type
application/json
{
  • "data": {
    },
  • "message": null,
  • "session": {
    },
  • "status": true,
  • "status_code": 200
}

Update

Klasör bilgilerini değiştirmek amacıyla bu endpointi kullanabilirsiniz.

Authorizations:
bearerAuth
Request Body schema: application/json
parent_id
number or null
title
string or null

Responses

Request samples

Content type
application/json
{
  • "parent_id": 1,
  • "title": "Deneme Klasörü #1.1"
}

Response samples

Content type
application/json
{
  • "data": {
    },
  • "message": null,
  • "session": {
    },
  • "status": true,
  • "status_code": 200
}

Video

Video işlemlerini bu endpointler ile yapabilirsiniz.

List

Videoları listelemek amacıyla bu endpointi kullanabilirsiniz.

Authorizations:
bearerAuth
query Parameters
id
string
Example: id=1
ids[]
string
Example: ids[]=2
directory_id
string
Example: directory_id=1
group_id
string
Example: group_id=2
group_ids[]
string
Example: group_ids[]=2
sort
string
Example: sort=id:desc
page_limit
string
Example: page_limit=100

Responses

Request samples

var client = new HttpClient();
var request = new HttpRequestMessage(HttpMethod.Get, "https://vistream.api.virtaragroup.com.tr/api/v1/video");
var response = await client.SendAsync(request);
response.EnsureSuccessStatusCode();
Console.WriteLine(await response.Content.ReadAsStringAsync());

Response samples

Content type
application/json
{
  • "data": [
    ],
  • "links": {},
  • "message": null,
  • "meta": {
    },
  • "session": {
    },
  • "status": true,
  • "status_code": 200
}

Upload

Video yükelemek amacıyla bu endpointi kullanabilirsiniz.

Authorizations:
bearerAuth
Request Body schema: multipart/form-data
convert_hls
boolean

Stream yayını için HLS'e dönüşümü yap.

directory_id
string or null

Yüklenecek klasör id, ana dizine yüklenilmek isteniyorsa gönderilmemelidir.

file
required
string <binary>
group_id
required
string

Video'nun ekleneceği grup id (Zorunlu)

title
string or null

Videonun özel bir başlık ile yüklenmesini isterseniz kullanabilirsiniz, kullanılmadığında otomatik üretilecektir

Responses

Request samples

var client = new HttpClient();
var request = new HttpRequestMessage(HttpMethod.Post, "https://vistream.api.virtaragroup.com.tr/api/v1/video");
var content = new MultipartFormDataContent();
content.Add(new StreamContent(File.OpenRead("/Users/berkay/Downloads/sample_960x400_ocean_with_audio.flv")), "file", "/Users/berkay/Downloads/sample_960x400_ocean_with_audio.flv");
content.Add(new StringContent("2"), "group_id");
content.Add(new StringContent("Test Başlık"), "title");
content.Add(new StringContent("1"), "convert_hls");
request.Content = content;
var response = await client.SendAsync(request);
response.EnsureSuccessStatusCode();
Console.WriteLine(await response.Content.ReadAsStringAsync());

Response samples

Content type
application/json
{
  • "data": {
    },
  • "message": null,
  • "session": {
    },
  • "status": true,
  • "status_code": 201
}

Show

Video bilgilerini almak amacıyla bu endponiti kullanabilirsiniz. process_statuses içerisinde type 2 farklı değer döndürebilir. CONVERT_COMPRESSION ve CONVERT_HLS CONVERT_COMPRESSION = Videonun sıkıştırma işleminin ilerleme bilgisi CONVERT_HLS = Videonun HLS çıktısı istendiyse HLS dönüşüm işleminin ilerleme bilgisi

Dikkat: Video Rest API'da {{ id }} parametresi kullanımdan kaldırılacaktır. Bunun yerine {{ uuid }} kullanınız.

Authorizations:
bearerAuth

Responses

Request samples

var client = new HttpClient();
var request = new HttpRequestMessage(HttpMethod.Get, "https://vistream.api.virtaragroup.com.tr/api/v1/video/1");
var response = await client.SendAsync(request);
response.EnsureSuccessStatusCode();
Console.WriteLine(await response.Content.ReadAsStringAsync());

Response samples

Content type
application/json
{}

Update

Video bilgilerini güncellemek amacıyla bu endponiti kullanabilirsiniz.

Authorizations:
bearerAuth
Request Body schema: application/json
directory_id
any or null
title
string or null

Responses

Request samples

Content type
application/json
{
  • "directory_id": null,
  • "title": "Video için yeni başlık!"
}

Response samples

Content type
application/json
{
  • "data": {
    },
  • "message": null,
  • "session": {
    },
  • "status": true,
  • "status_code": 200
}

Delete

Videoyu silmek amacıyla bu endponiti kullanabilirsiniz.

Authorizations:
bearerAuth

Responses

Request samples

var client = new HttpClient();
var request = new HttpRequestMessage(HttpMethod.Delete, "https://vistream.api.virtaragroup.com.tr/api/v1/video/1");
var response = await client.SendAsync(request);
response.EnsureSuccessStatusCode();
Console.WriteLine(await response.Content.ReadAsStringAsync());

Response samples

Content type
application/json
{
  • "data": {
    },
  • "message": null,
  • "session": {
    },
  • "status": true,
  • "status_code": 200
}

Stream Type

Video türleri hakkında bilgi almak için bu endpointleri kullanabilirsiniz.

List

Bu endpoint video tiplerini listeler.

Authorizations:
bearerAuth

Responses

Request samples

var client = new HttpClient();
var request = new HttpRequestMessage(HttpMethod.Get, "https://vistream.api.virtaragroup.com.tr/api/v1/video/stream/type");
var response = await client.SendAsync(request);
response.EnsureSuccessStatusCode();
Console.WriteLine(await response.Content.ReadAsStringAsync());

Response samples

Content type
application/json
{
  • "data": [
    ],
  • "links": {},
  • "message": null,
  • "meta": {
    },
  • "session": {
    },
  • "status": true,
  • "status_code": 200
}

Show

Bu endpoint video tipi bilgilerini döner.

Authorizations:
bearerAuth

Responses

Request samples

var client = new HttpClient();
var request = new HttpRequestMessage(HttpMethod.Get, "https://vistream.api.virtaragroup.com.tr/api/v1/video/stream/type/1");
var response = await client.SendAsync(request);
response.EnsureSuccessStatusCode();
Console.WriteLine(await response.Content.ReadAsStringAsync());

Response samples

Content type
application/json
{
  • "data": {
    },
  • "message": null,
  • "session": {
    },
  • "status": true,
  • "status_code": 200
}

Group

Videoları gruplayabilirsiniz. Bu endpointler video grupları işlemleri yapmanıza olanak sağlar.

List

Video gruplarını listelemek amacıyla kullanabilirsiniz.

Authorizations:
bearerAuth

Responses

Request samples

var client = new HttpClient();
var request = new HttpRequestMessage(HttpMethod.Get, "https://vistream.api.virtaragroup.com.tr/api/v1/video/group?admin_id=1");
var response = await client.SendAsync(request);
response.EnsureSuccessStatusCode();
Console.WriteLine(await response.Content.ReadAsStringAsync());

Response samples

Content type
application/json
{
  • "data": [
    ],
  • "links": {},
  • "message": null,
  • "meta": {
    },
  • "session": {
    },
  • "status": true,
  • "status_code": 200
}

Add

Video grubu eklemek amacıyla bu endpointi kullanabilirsiniz.

Authorizations:
bearerAuth
Request Body schema: application/json
name
required
string

Responses

Request samples

Content type
application/json
""

Response samples

Content type
application/json
{
  • "data": {
    },
  • "message": null,
  • "session": {
    },
  • "status": true,
  • "status_code": 201
}

Show

Video grubu hakkında bilgi almak amacıyla kullanabilirsiniz.

Authorizations:
bearerAuth

Responses

Request samples

var client = new HttpClient();
var request = new HttpRequestMessage(HttpMethod.Get, "https://vistream.api.virtaragroup.com.tr/api/v1/video/group/5");
var response = await client.SendAsync(request);
response.EnsureSuccessStatusCode();
Console.WriteLine(await response.Content.ReadAsStringAsync());

Response samples

Content type
application/json
{
  • "data": {
    },
  • "message": null,
  • "session": {
    },
  • "status": true,
  • "status_code": 200
}

Update

Video grubunu güncellemek amacıyla kullanabilirsiniz.

Authorizations:
bearerAuth
Request Body schema: application/json
name
required
string

Responses

Request samples

Content type
application/json
""

Response samples

Content type
application/json
{
  • "data": {
    },
  • "message": null,
  • "session": {
    },
  • "status": true,
  • "status_code": 200
}

Delete

Video grubunu silmek amacıyla kullanabilirsiniz.

Authorizations:
bearerAuth

Responses

Request samples

var client = new HttpClient();
var request = new HttpRequestMessage(HttpMethod.Delete, "https://vistream.api.virtaragroup.com.tr/api/v1/video/group/5");
var response = await client.SendAsync(request);
response.EnsureSuccessStatusCode();
Console.WriteLine(await response.Content.ReadAsStringAsync());

Response samples

Content type
application/json
{
  • "data": {
    },
  • "message": null,
  • "session": {
    },
  • "status": true,
  • "status_code": 200
}

Statistics

Sistemdeki depolama tüketimi hakkında bilgi almak için bu endpointleri kullanabilirsiniz.

General

İstatistik için bu endponiti kullanabilirsiniz.

Authorizations:
bearerAuth

Responses

Request samples

var client = new HttpClient();
var request = new HttpRequestMessage(HttpMethod.Get, "https://vistream.api.virtaragroup.com.tr/api/v1/statistics");
var response = await client.SendAsync(request);
response.EnsureSuccessStatusCode();
Console.WriteLine(await response.Content.ReadAsStringAsync());

Response samples

Content type
application/json
{
  • "data": {
    },
  • "message": null,
  • "session": {
    },
  • "status": true,
  • "status_code": 200
}

Trash

Silinen içerikler yanlışlıkla yapılan hataları önlemek amacıyla bu sayfada gösterilir ve 7 gün boyunca saklanır. Süre sonunda kalıcı olarak silinir. İçeriği kurtarmak veya kalıcı olarak silmek için aşağıdaki endpointleri kullanabilirsiniz.

List

Çöp kutusunu listelemek için bu endponiti kullanabilirsiniz.

Authorizations:
bearerAuth
query Parameters
title
string or null
Example: title=Sample

Responses

Request samples

var client = new HttpClient();
var request = new HttpRequestMessage(HttpMethod.Get, "https://vistream.api.virtaragroup.com.tr/api/v1/trash");
var response = await client.SendAsync(request);
response.EnsureSuccessStatusCode();
Console.WriteLine(await response.Content.ReadAsStringAsync());

Response samples

Content type
application/json
{
  • "data": [
    ],
  • "links": {},
  • "message": null,
  • "meta": {
    },
  • "session": {
    },
  • "status": true,
  • "status_code": 200
}

Recover

Silinen ögeyi çöp kutusundan çıkartmak için bu endponiti kullanabilirsiniz.

Authorizations:
bearerAuth

Responses

Request samples

var client = new HttpClient();
var request = new HttpRequestMessage(HttpMethod.Get, "https://vistream.api.virtaragroup.com.tr/api/v1/trash/recover/3");
var response = await client.SendAsync(request);
response.EnsureSuccessStatusCode();
Console.WriteLine(await response.Content.ReadAsStringAsync());

Response samples

Content type
application/json
{
  • "data": {
    },
  • "message": null,
  • "session": {
    },
  • "status": true,
  • "status_code": 200
}

Delete

Videoyu kalıcı olarak silmek için bu endpointi kullanabilirsiniz.

Authorizations:
bearerAuth

Responses

Request samples

var client = new HttpClient();
var request = new HttpRequestMessage(HttpMethod.Delete, "https://vistream.api.virtaragroup.com.tr/api/v1/trash/3");
var response = await client.SendAsync(request);
response.EnsureSuccessStatusCode();
Console.WriteLine(await response.Content.ReadAsStringAsync());

Response samples

Content type
application/json
{
  • "data": {
    },
  • "message": null,
  • "session": {
    },
  • "status": true,
  • "status_code": 200
}