Youtube Analytics y cuenta de servicio de Google

Objetivos: Implementar un programa (java o python) para recuperar datos de videos que publiqué en mi canal de Youtube. Este programa se lanzará diariamente (1:00 a.m.).

Soluciones: para recuperar datos de YouTube, incluida la cantidad de visitas por día, la API de YouTube Analytics es, en mi opinión, la mejor solución. Uso el Servicio de cuenta de Google ("GoogleCredential") para autenticarme:

static {
    // Build service account credential.
    try {

        // Create a listener for automatic refresh OAuthAccessToken
        List<CredentialRefreshListener> list = new ArrayList<CredentialRefreshListener>();
        list.add(new CredentialRefreshListener() {

            public void onTokenResponse(Credential credential,
                    TokenResponse tokenResponse) throws IOException {
                System.out.println(tokenResponse.toPrettyString());

            }

            public void onTokenErrorResponse(Credential credential,
                    TokenErrorResponse tokenErrorResponse)
                    throws IOException {
                System.err.println("Error: "
                        + tokenErrorResponse.toPrettyString());
            }
        });

        // Create a GoogleCredential for authenticate with ServiceAccount
        // service
        credential = new GoogleCredential.Builder()
                .setTransport(HTTP_TRANSPORT)
                .setJsonFactory(JSON_FACTORY)
                .setServiceAccountId(SERVICE_ACCOUNT_EMAIL)
                .setServiceAccountScopes(SCOPES)
                .setClock(Clock.SYSTEM)
                .setServiceAccountPrivateKeyFromP12File(
                        new File("key.p12"))
                .setRefreshListeners(list).build();

        credential.refreshToken();

    } catch (GeneralSecurityException e) {
        e.printStackTrace();
    } catch (IOException e) {
        e.printStackTrace();
    }
}

Y ejecuto la consulta de Youtube Analytics:

YoutubeAnalytics youtubeAnalytics = new YoutubeAnalytics.Builder(HTTP_TRANSPORT, JSON_FACTORY, credential)
        .setApplicationName("Test-YouTube-Analytics/1.0").build();

    // Create request
    credential.refreshToken();
    YoutubeAnalyticsRequest<?> request = youtubeAnalytics.reports()
            .query("channel==" + channelId, "2012-10-01", "2012-12-01", "views")
            .setAlt("json")
            .setKey(API_KEY)
            .setDimensions("month")
            .setPrettyPrint(true);
    System.out.println(request.buildHttpRequest().getUrl().toString());
    ResultTable first = (ResultTable) request.execute();
}

Pero me sale el siguiente error:

com.google.api.client.googleapis.json.GoogleJsonResponseException: 500 Internal Server Error
{
  "code" : 500,
  "errors" : [ {
    "domain" : "global",
    "message" : "Unknown error occurred on the server.",
    "reason" : "internalError"
  } ],
  "message" : "Unknown error occurred on the server."
}

Gracias por tu perspicacia!

Respuesta 1

Seguí el tutorial de couchbase para conectarme al servidor remoto de couchbase, pero falló en el tiempo de espera de conexión después de intentar abrir el depósito predeterminado. He comprobado que puedo abrir la página del servidor de sofá base ...

Estoy tratando de contribuir con una acción al menú Comparar con en eclipse, pero no puedo encontrar la identificación para usar en la ruta de menú de mi acción. ¿Cuál es la identificación para comparar con el menú? ¿Cómo encuentras otros identificadores si ...

Acabo de comenzar a usar el nuevo análisis nulo Eclipse 4.2 (Juno). En un código como este: x = foo (); if (x == null) fail ("x es nulo"); volver x.bar (); Recibo advertencias de que x puede ser nulo. Pero ...

WS.url ("https://api.humanapi.co/v1/human" + url + "? Updated_since =" + updatedSince) .setHeader ("Autorización", "Portador" + accessToken) .setHeader ("Aceptar", " application / json "). get (). map (...