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ölgeyle ilgili videoların listesini döndürmesini bildirir. 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
  

Video yükleme

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

  • API'nin videos.insert yönteminin dokümanlarında, farklı programlama dilleri kullanılarak videoların nasıl yükleneceğini açıklayan çeşitli kod örnekleri yer alır.

  • Devam ettirilebilir yüklemeler kılavuzunda, bir uygulamanın devam ettirilebilir yükleme işlemiyle 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ükleme ile ilgili JavaScript örneğinde, bir web sayfası üzerinden video dosyası yüklemenin nasıl yapılacağını göstermek için CORS (merkezler arası kaynak paylaşımı) kullanılır. v3 API'nin kullandığı CORS yükleme kitaplığı, doğal olarak devam ettirilebilir yüklemeyi destekler. Ayrıca örnekte, processingDetails kaynağının video 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 ele alınacağı 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ği olarak 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. YouTube videoyu işlemeyi tamamladığında mülkün değeri processing dışında bir değere (ör. succeeded veya failed) dönüşür.

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

    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'ye yoklama isteği gönderebilir. Video işlendikten sonra uygulamanız, videonun durumuna bağlı olarak bir bülten oluşturabilir veya başka bir işlem yapabilir.

Videoları 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

    Ş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ö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üncellenebildiğinden, API isteğini yetkilendiren kullanıcının sahip olduğu videoların listesini almak bu sürecin olası ilk adımıdır.

  • 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, video kaynağıdır. Bu kaynakta id özelliği, güncellemekte olduğunuz videonun video kimliğini belirtir. Bu örnekte kaynak, recordingDetails nesnesi de içerir.

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

    {
      "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

Özel küçük resim yükleme ve videolarda kullanma

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

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

İlgili kod örnekleri: PHP, Python

Video silme

Bu örnekte bir videonun nasıl silineceği gösterilmektedir. Örnekte aşağıdaki adımlar yer almaktadı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ö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ürecin olası ilk adımıdır.

  • 2. adım: Videoyu silin

    Belirli bir videoyu silmek için videos.delete yöntemini çağırın. Talebinde, 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 yerine 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 almaktadı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 bir videoyu 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 gerekir. Ayrıca ikincil bir neden de belirtmeniz önemle tavsiye edilir.

  • 2. adım: Videoyu kötüye kullanım amaçlı içerik nedeniyle 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 şiddetle tavsiye edilir.

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

    Aşağıdaki örnek JSON nesnesi, bir videoyu spam veya yanıltıcı içerik barındırdığı ve daha spesifik olarak yanıltıcı bir küçük resim kullandığı için 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 ile ilgili ihlalin 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ğerinin yerine geçerli bir video kimliği girmeniz gerekir. Bu isteği gönderdiğinizde videonun işaretleneceğini lütfen unutmayın.

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