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.

Kanal tarafından yüklenen videoları alma

Bu örnek, belirli bir kanala yüklenen videoları alır. Örnekte iki adım vardır:

Bu örnek, YouTube'un en popüler videolarının listesini nasıl alacağınızı gösterir. Bu liste, genel popülerliği belirlemek için birçok farklı sinyali birleştiren bir algoritma kullanılarak seçilir.

En popüler video listesini almak için videos.list yöntemini çağırıp chart parametresinin değerini mostPopular olarak ayarlayın. Bu listeyi alırken, aşağıdaki parametrelerin birini veya her ikisini de ayarlayabilirsiniz:

  • regionCode: API'ye, belirtilen bölge için bir video listesi döndürmesi talimatı verir.
  • videoCategoryId: En popüler videoların alınması gereken video kategorisini tanımlar.

Aşağıdaki istek İspanya'daki en popüler spor videolarını alır:

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

Video yükle

API Gezgini, dosya yükleme özelliğini desteklemediğinden bu açıklama, yürütülebilir örnekle bağlantı vermiyor. Aşağıdaki kaynaklar, v3 API'sini kullanarak video yükleyebilmeniz için uygulamanızda değişiklik yapmanıza yardımcı olacaktır:

  • API'nin videos.insert yöntemiyle ilgili dokümanlar, farklı programlama dilleri kullanılarak video yüklemeyi açıklayan çeşitli kod örnekleri içerir.

  • Devam ettirilebilir yüklemeler kılavuzunda, bir uygulamanın devam ettirilebilir bir yükleme işlemi kullanarak video yüklemek için kullandığı HTTP isteği dizisi açıklanmaktadır. Kılavuz, öncelikle Google API istemci kitaplıklarını kullanamayan geliştiricilere yöneliktir. Bazı yayıncılar devam ettirilebilir yüklemeler için yerel destek sağlar.

  • Video yükleme ile ilgili JavaScript örneği, bir web sayfası üzerinden video dosyası yükleme işlemini göstermek için CORS'yi (kaynaklar arası kaynak paylaşımı) kullanır. v3 API'nin kullandığı CORS yükleme kitaplığı, doğal olarak devam ettirilebilir yüklemeyi destekler. Ayrıca örnekte, video kaynağının processingDetails bölümünü alarak, yüklenen videonun durumunu nasıl kontrol edeceğiniz ve yüklenen videonun durum değişikliklerini nasıl yönetebileceğiniz 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 bir video, kimliği doğrulanmış kullanıcının yüklenen videolar feed'inde 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ılı bir şekilde 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. Mülkün değeri, YouTube videoyu işlemeyi bitirdiğinde processing dışında (ör. succeeded veya failed) değişir.

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

    Aşağıdaki istek, videonun durumunu kontrol eder. İsteği API Gezgini'nde 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'ye anket yapabilir. Video işlendikten sonra, uygulamanız bir bülten oluşturabilir veya videonun durumuna bağlı olarak başka bir işlemle devam edebilir.

Video güncelleme

Bu örnekte, videonun kaydedildiği saat ve yer hakkında bilgi eklemek için videonun nasıl güncelleneceği gösterilmektedir. Örnekte aşağıdaki adımlar bulunmaktadır:

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

    Şu anda 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östermek için kullanılabilir.

    Not: Video kimlikleri edinmenin, arama sonuçlarını alma veya bir oynatma listesindeki öğeleri listeleme gibi çeşitli yöntemleri vardır. Bununla birlikte, bir video yalnızca sahibi tarafından güncellenebileceği için API isteğini yetkilendiren kullanıcının sahip olduğu videoların listesini almak, bu işlemin ilk adımı olabilir.

  • 2. Adım: Bir 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 bir recordingDetails nesnesi de içeriyor.

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

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

    İsteği API Gezgini'nde 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

Özel bir küçük resim yükleyin ve bunu bir video için ayarlayın

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

API Gezgini, medya dosyaları yükleme özelliğini desteklemediğinden bu yöntem API Gezgini kullanılarak test edilemez. Bu yöntem için gereklidir.

İlgili kod örnekleri: PHP, Python

Video silme

Bu örnekte, bir videonun nasıl silineceği gösterilmektedir. Örnekte aşağıdaki adımlar bulunmaktadır:

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

    Şu anda 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östermek için kullanılabilir.

    Not: Video kimlikleri edinmenin, arama sonuçlarını alma veya bir oynatma listesindeki öğeleri listeleme gibi çeşitli yöntemleri vardır. Bununla birlikte, bir video yalnızca sahibi tarafından silinebildiği için API isteğini yetkilendiren kullanıcının sahip olduğu videoların listesini almak, bu işlemin ilk adımı olabilir.

  • 2. Adım: Bir videoyu silin

    Belirli bir videoyu silmek için videos.delete yöntemini çağırın. İstekteki id parametresi, silmekte olduğunuz 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 içeren bir videoyu bildirin

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 bulunmaktadır:

  • 1. Adım: Videonun neden raporlandığını açıklayan kimlikler alın

    Bir videoyu işaretlemek için geçerli nedenlerin listesini almak amacıyla videoAbuseReportReasons.list yöntemine yetkili bir istek gönderin. Aşağıdaki videoAbuseReportReason kaynağı, spam veya yanıltıcı içerik barındıran bir videoyu işaretlemeyle ilgili bilgiler içerir.

    {
      "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, ikincil nedenler listesiyle ilişkilendirilir. Spam içeren bir videoyu işaretlerken sorunun nedenini belirtmeniz gerekir. Ayrıca, ikinci bir neden belirtmeniz de önemle tavsiye edilir.

  • 2. Adım: Kötüye kullanım amaçlı içerik için videoyu işaretleyin

    Videoyu bildirmek için videos.reportAbuse yöntemine yetkilendirilmiş 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ı nedenlerden dolayı ikincil bir neden desteklenir ve önemle tavsiye edilir.

    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ıran ve daha spesifik olarak yanıltıcı küçük resim kullanılan videoları işaretler. Yukarıdaki örnek JSON nesnesinde gösterildiği gibi Spam veya yanıltıcı içeriğin kimliği S'dir. Yanıltıcı küçük resmin 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 aslında işaretleneceğini lütfen unutmayın.

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