Uygulama: Videolar

Aşağıdaki örneklerde, videolarla ilgili işlevleri gerçekleştirmek için YouTube Data API'nin (v3) nasıl kullanılacağı gösterilmektedir.

Bir kanalın yüklenen videolarını alma

Bu örnek, belirli bir kanala yüklenen videoları alır. Örnek iki adımdan oluşur:

Bu örnekte, genel popülerliği belirlemek için birçok farklı sinyali birleştiren bir algoritma kullanılarak seçilen YouTube'un en popüler videolarının listesinin nasıl alınacağı gösterilmektedir.

En popüler videolar listesini almak için videos.list yöntemini çağırın ve chart parametresinin değerini mostPopular olarak ayarlayın. mostPopular listesinde trend olan müzik, film ve oyun videoları yer alır.

Ardından, isteğe bağlı olarak aşağıdaki parametreleri ayarlayabilirsiniz:

  • regionCode: API'ye, belirtilen bölge için bir video listesi döndürmesini söyler. Parametre değeri, ISO 3166-1 alfa-2 ülke kodudur. YouTube'un desteklediği bölge kodlarının listesini almak için i18nRegions.list yöntemini kullanabilirsiniz.
  • videoCategoryId: En popüler videoların alınması gereken video kategorisini tanımlar. YouTube'un desteklediği kategori kimliklerinin listesini almak için videoCategories.list yöntemini kullanabilirsiniz.

Örneğin, aşağıdaki istek İspanya'daki en popüler spor videolarını alır:

https://developers.google.com/apis-explorer/#p/youtube/v3/youtube.videos.list?
        part=snippet
        &chart=mostPopular
        &regionCode=es
        &videoCategoryId=17
  

Toplu video istatistiklerini alma

Bu örnekte, videos.batchGetStats yöntemi kullanılarak bir video listesinin istatistikleri alınır.

Bu yöntemi kullanmak için isteğin id parametresini, istatistiklerini almak istediğiniz YouTube video kimliklerinin virgülle ayrılmış bir listesi olarak ayarlayın. part parametresinin değerini, yanıtın içermesini istediğiniz videoStat kaynak parçalarının virgülle ayrılmış bir listesi olarak ayarlayın. Desteklenen bölümler: snippet, statistics, contentDetails ve id.

Bu yöntemin herkese açık olmayan videolarda kullanılabilmesi için kimlik doğrulama gerekir ancak herkese açık videolarda gerekmez. İstek, herkese açık olmayan videolarla ilgili verileri alıyorsa uygun şekilde yetkilendirilmelidir.

Aşağıdaki istek, VIDEO_ID_1 ve VIDEO_ID_2 video kimlikleriyle ilgili istatistikleri alır:

https://developers.google.com/apis-explorer/#p/youtube/v3/youtube.videos.batchGetStats?
        part=snippet,statistics
        &id=VIDEO_ID_1,VIDEO_ID_2

Video yükleme

API Gezgini, dosya yükleme özelliğini desteklemediğinden bu açıklama, yürütülebilir bir örneğe bağlantı vermez. Aşağıdaki kaynaklar, uygulamanızı v3 API'yi kullanarak video yükleyebilecek şekilde değiştirmenize yardımcı olacaktır:

  • API'nin videos.insert yöntemiyle ilgili dokümanlarda, farklı programlama dilleri kullanarak video yüklemeyi açıklayan çeşitli kod örnekleri yer alır.

  • Devam ettirilebilir yüklemeler kılavuzunda, bir uygulamanın devam ettirilebilir yükleme işlemi kullanarak video yüklemek için kullandığı HTTP isteklerinin sırası açıklanmaktadır. Bu kılavuz, öncelikle Google API istemci kitaplıklarını kullanamayan geliştiriciler için hazırlanmıştır. Bu kitaplıkların bazıları, devam ettirilebilir yüklemeler için yerel destek sağlar.

  • Video yüklemeye yönelik JavaScript örneği, bir web sayfası üzerinden video dosyasının nasıl yükleneceğini göstermek için CORS (merkezler arası kaynak paylaşımı) kullanır. v3 API'nin kullandığı CORS yükleme kitaplığı, devam ettirilebilir yüklemeyi doğal olarak destekler. Ayrıca örnekte, video kaynağının processingDetails bölümü alınarak yüklenen bir videonun durumunun nasıl kontrol edileceği ve yüklenen videonun durum değişikliklerinin nasıl işleneceği gösterilmektedir.

Yüklenen bir videonun durumunu kontrol etme

Bu örnekte, yüklenen bir videonun durumunun nasıl kontrol edileceği gösterilmektedir. Yüklenen videolar, kimliği doğrulanmış kullanıcının yüklenen videolar akışında hemen görünür. Ancak video işlenene kadar YouTube'da görünmez.

  • 1. adım: Videoyu yükleyin

    Videoyu yüklemek için videos.insert yöntemini çağırın. İstek başarılı olursa API yanıtı, yüklenen videonun benzersiz video kimliğini tanımlayan bir video kaynağı içerir.

  • 2. adım: Videonun durumunu kontrol edin

    Videonun durumunu kontrol etmek için videos.list yöntemini çağırın. id parametresinin değerini 1. adımda elde edilen video kimliğine ayarlayın. part parametresinin değerini processingDetails olarak ayarlayın.

    İstek başarıyla işlenirse API yanıtı bir video kaynağı içerir. YouTube'un videoyu işlemeye devam edip etmediğini belirlemek için processingDetails.processingStatus özelliğinin değerini kontrol edin. YouTube videoyu işlemeyi tamamladığında özelliğin değeri processing dışında bir değerle (ör. succeeded veya failed) değiştirilir.

    İstek gövdesi, silmekte olduğunuz videonun video kimliğini id özelliğinin belirttiği bir video kaynağıdır. Bu örnekte kaynak, recordingDetails nesnesi de içeriyor.

    Aşağıdaki istek, bir videonun durumunu kontrol eder. API Gezgini'nde isteği tamamlamak için id özelliğinin değerini ayarlamanız gerekir.

    https://developers.google.com/apis-explorer/#p/youtube/v3/youtube.videos.list?
            part=snippet,processingDetails
            &id=VIDEO_ID

Not: Uygulamanız, yeni yüklenen bir videonun durumunu düzenli olarak kontrol etmek için API'yi yoklayabilir. Video işlendikten sonra uygulamanız, videonun durumuna bağlı olarak bir bülten oluşturabilir veya başka bir işleme devam edebilir.

Videoyu güncelleme

Bu örnekte, videonun çekildiği zaman ve yerle ilgili bilgileri eklemek için videonun nasıl güncelleneceği gösterilmektedir. Örnekte aşağıdaki adımlar yer almaktadır:

  • 1. adım: Video kimliğini alın

    Kimliği doğrulanmış kullanıcının kanalına yüklenen videoları almak için yukarıdaki adımları uygulayın. Liste, her videonun kimliğini anahtar olarak kullanarak video listesi görüntülemek için kullanılabilir.

    Not: Arama sonuçlarını alma veya bir oynatma listesindeki öğeleri listeleme gibi video kimliklerini edinmenin başka birçok yolu vardır. Ancak bir video yalnızca sahibi tarafından güncellenebileceğinden, API isteğini yetkilendiren kullanıcının sahip olduğu videoların listesini almak bu süreçteki ilk adım olabilir.

  • 2. adım: Videoyu güncelleyin

    Belirli bir videoyu güncellemek için videos.update yöntemini çağırın. part parametresinin değerini recordingDetails olarak ayarlayın. (Parametre değeri, hangi videonun meta veri alanlarının güncellendiğine bağlıdır.)

    İstek gövdesi, id özelliğinin güncellediğiniz videonun video kimliğini belirttiği bir video kaynağıdır. Bu örnekte kaynak, recordingDetails nesnesi de içeriyor.

    Aşağıdaki örnek kaynak, videonun 30 Ekim 2013'te Boston'da kaydedildiğini gösterir:

    {
      "id": "VIDEO_ID",
      "recordingDetails": {
        "location": {
          "latitude": "42.3464",
          "longitude": "-71.0975"
        }
        "recordingDate": "2013-10-30T23:15:00.000Z"
      }
    }

    API Gezgini'nde isteği tamamlamak için id özelliğinin değerini ayarlamanız gerekir.

    https://developers.google.com/apis-explorer/#p/youtube/v3/youtube.videos.update?
            part=snippet

İçerik üretici tarafından başlatılan marka iş ortağı erişimi (CI BPA), video sahibinin videosuna erişimi bir marka iş ortağı kanalıyla paylaşmasına olanak tanır. Bu, brandPartner bölümünü gerektirir.

Erişim oluşturma (Ekleme)

Video yüklerken erişim oluşturmak için part parametresine brandPartner değerini ekleyin ve istek gövdesinde bir brandPartner nesnesi sağlayın. Marka kanalını tanımlamak için channelId ("UC" ile başlayan harici kanal kimliği) veya channelHandle ("@" ile başlayan) değerini belirtmeniz gerekir.

POST /youtube/v3/videos?part=snippet,status,brandPartner
{
  "snippet": {
    "title": "Video Title",
    "description": "Video Description",
    "categoryId": "22"
  },
  "status": {
    "privacyStatus": "private"
  },
  "brandPartner": {
    "channelHandle": "@brandchannel"
  }
}

Yanıtta yalnızca çözümlenen channelId döndürülür.

Erişimi güncelleme veya kaldırma (Güncelleme)

Erişimi farklı bir marka kanalına güncellemek veya erişimi kaldırmak için videos.update yöntemini part parametresinde brandPartner ile birlikte çağırın.

Erişimi değiştirmek için istek gövdesinde yeni channelId veya channelHandle değerini belirtin:

PUT /youtube/v3/videos?part=brandPartner
{
  "id": "VIDEO_ID",
  "brandPartner": {
    "channelId": "UC_SOME_BRAND_CHANNEL_ID"
  }
}

Erişimi kaldırmak için part parametresinde brandPartner ile istek gönderin ancak istek gövdesinde boş bir brandPartner nesnesi kullanın:

PUT /youtube/v3/videos?part=brandPartner
{
  "id": "VIDEO_ID",
  "brandPartner": {}
}

Özel küçük resim yükleme ve videoya ayarlama

Özel bir küçük resim yüklemek ve bunu bir video için ayarlamak üzere v3 API'nin thumbnails.set yöntemini kullanabilirsiniz. İsteğinizde, videoId parametresinin değeri, küçük resmin kullanılacağı videoyu tanımlar.

Bu sorgu, API Gezgini kullanılarak test edilemez. Çünkü API Gezgini, bu yöntem için gerekli olan medya dosyası yükleme özelliğini desteklemez.

İlgili kod örnekleri: PHP, Python

Video silme

Bu örnekte, videoların nasıl silineceği gösterilmektedir. Örnekte aşağıdaki adımlar yer alır:

  • 1. adım: Video kimliğini alın

    Kimliği doğrulanmış kullanıcının kanalına yüklenen videoları almak için yukarıdaki adımları uygulayın. Liste, her videonun kimliğini anahtar olarak kullanarak video listesi görüntülemek için kullanılabilir.

    Not: Arama sonuçlarını alma veya bir oynatma listesindeki öğeleri listeleme gibi video kimliklerini edinmenin başka birçok yolu vardır. Ancak bir video yalnızca sahibi tarafından silinebileceğinden, API isteğini yetkilendiren kullanıcının sahip olduğu videoların listesini almak bu süreçteki ilk adım olabilir.

  • 2. adım: Videoyu silin

    Belirli bir videoyu silmek için videos.delete yöntemini çağırın. İstekteki id parametresi, sildiğiniz videonun video kimliğini belirtir. İstek, OAuth 2.0 kullanılarak yetkilendirilmelidir. Bu sorguyu API Gezgini'nde test ediyorsanız id parametre değeri için geçerli bir video kimliği kullanmanız gerekir.

    https://developers.google.com/apis-explorer/#p/youtube/v3/youtube.videos.delete?
            id=VIDEO_ID
    

Kötüye kullanım amaçlı videoları bildirme

Bu örnekte, kötüye kullanım amaçlı içerik barındıran bir videonun nasıl bildirileceği gösterilmektedir. Örnekte aşağıdaki adımlar yer alır:

  • 1. adım: Videonun neden bildirildiğini açıklayan kimlikleri alın

    Bir videoyu işaretlemek için geçerli nedenlerin listesini almak üzere videoAbuseReportReasons.list yöntemine yetkili bir istek gönderin. Aşağıdaki örnek videoAbuseReportReason kaynağında, spam veya yanıltıcı içerik barındıran videoları işaretleme ile ilgili bilgiler yer almaktadır.

    {
      "kind": "youtube#videoAbuseReportReason",
      "etag": "\"tbWC5XrSXxe1WOAx6MK9z4hHSU8/Or2VqBIilpHU7j__oPzUFCvGVBw\"",
      "id": "S",
      "snippet": {
        "label": "Spam or misleading",
        "secondaryReasons": [
          {
            "id": "27",
            "label": "Spam or mass advertising"
          },
          {
            "id": "28",
            "label": "Misleading thumbnail"
          },
          {
            "id": "29",
            "label": "Malware or phishing"
          },
          {
            "id": "30",
            "label": "Pharmaceutical drugs for sale"
          },
          {
            "id": "31",
            "label": "Other misleading info"
          }
        ]
      }
    }

    Kaynakta gösterildiği gibi, bu neden bir dizi ikincil nedenle ilişkilidir. Spam içerdiği için bir videoyu işaretlerken nedenin kimliğini belirtmeniz ve ikincil bir neden de belirtmeniz önemle tavsiye edilir.

  • 2. adım: Videoyu kötüye kullanım amaçlı içerik olarak işaretleyin

    Videoyu gerçekten bildirmek için videos.reportAbuse yöntemine yetkili bir istek gönderin. İstek gövdesi, hem işaretlenen videoyu hem de işaretlenme nedenini tanımlayan bir JSON nesnesidir. 1. adımda belirtildiği gibi, bazı neden türleri için ikincil bir neden desteklenir ve kesinlikle önerilir.

    JSON nesnesinin videoId özelliği, işaretlenen videoyu tanımlar.

    Aşağıdaki örnek JSON nesnesi, spam veya yanıltıcı içerik barındırdığı ve daha spesifik olarak yanıltıcı bir küçük resim kullandığı için bir videoyu işaretler. Yukarıdaki örnek JSON nesnesinde gösterildiği gibi, spam veya yanıltıcı içeriklerin kimliği S'dir. Yanıltıcı küçük resim kimliği 28'dir.

    {
      "videoId": "VIDEO_ID",
      "reasonId": "S",
      "secondaryReasonId": "28",
      "comments": "Testing the video flagging feature.",
      "language": "en"
    }

    videos.reportAbuse isteği OAuth 2.0 kullanılarak yetkilendirilmelidir. Aşağıdaki bağlantı, yukarıdaki JSON nesnesini API Gezgini'ne yükler. Sorguyu test etmek için videoId özellik değerini geçerli bir video kimliğiyle değiştirmeniz gerekir. Bu isteği gönderdiğinizde videonun gerçekten işaretleneceğini lütfen unutmayın.

    https://developers.google.com/apis-explorer/#p/youtube/v3/youtube.videos.reportAbuse