Hola, quiero obtener en una lista los vídeos de un canal de youtube, pero no tengo ni idea de la api de YouTube. Estoy trabajando en Java (Android). ¿Me pueden asesorar de como hacerlo? ¿Pueden darme un contacto y hablamos mejor?
2 Respuestas
Cual es tu duda principal? como usar la api de youtube? o como obtener la api en android?
si te sirve, cuando practicaba el desarrollo de android hize un código para obtener los videos desde la api version 2 ( obsoleta ). la idea es usar AsyncTask, JSONObject, JSONArray, etc.
import android.app.Activity;
import android.net.ConnectivityManager;
import android.net.NetworkInfo;
import android.os.AsyncTask;
import android.os.Bundle;
import android.util.Log;
import android.view.Menu;
import android.view.MenuItem;
import android.widget.GridView;
import android.widget.Toast;
import org.apache.http.HttpResponse;
import org.apache.http.client.HttpClient;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.DefaultHttpClient;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
import java.util.ArrayList;
import java.util.HashMap;
public class MainActivity extends Activity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        getYTVideos();
    }
    private boolean getYTVideos()
    {
        // JSONObject json = new JSONObject(result);
        ConnectivityManager connMgr = (ConnectivityManager) getSystemService(Activity.CONNECTIVITY_SERVICE);
        NetworkInfo networkInfo = connMgr.getActiveNetworkInfo();
        if (networkInfo == null || !networkInfo.isConnected())
        {
            // no hay conexion de red en el dispositivo
            return false;
        }
        // Definimos la url para la peticion
        String YTVideoUrl = "http://gdata.youtube.com/feeds/api/playlists/" + // la ruta de la api
                            "PLA2B92602CA292180" + // el id del playlist ( mi artista favorito :3 )
                            "?max-results=25" + // la cantidad de resultados deseados
                            "&start-index=1" + // el indice de los resultados
                            "&alt=jsonc" + // el formato en json
                            "&v=2"; // la version del api (dejar en 2)
        new VideoDataDownloader().execute(YTVideoUrl);
        return true;
    }
    private class VideoDataDownloader extends AsyncTask<String, Void, String> {
        @Override
        protected String doInBackground(String... urls) {
            InputStream inputStream = null;
            // definimos la cadena del resultado final y la cadena para las lineas
            // de la respuesta http
            String result = "",
                   line = "";
            try
            {
                // definimos el cliente http
                HttpClient httpClient = new DefaultHttpClient();
                // definimos la peticion http a la url deseada
                HttpResponse httpResponse = httpClient.execute(new HttpGet(urls[0]));
                // obtenemos el contenido
                inputStream = httpResponse.getEntity().getContent();
                // definimos el lector de buffer
                BufferedReader bufferedReader = new BufferedReader( new InputStreamReader(inputStream, "utf-8"), 8);
                // agregamos al resultado linea a linea
                while((line = bufferedReader.readLine()) != null) {
                    result += line;
                }
                // ceramos
                inputStream.close();
            } catch (Exception e){}
            return result;
        }
        @Override
        protected void onPostExecute(String result) {
            try
            {
                JSONObject json = new JSONObject(result).getJSONObject("data");
                JSONArray videos = json.getJSONArray("items");
                String playlistTitle = json.getString("title");
                Toast.makeText(
                        getBaseContext(),
                        String.format("Lista '%s' cargada!", playlistTitle),
                        Toast.LENGTH_LONG
                ).show();
                for (int i = 0; i < videos.length(); i++) {
                    JSONObject videoItem = videos.getJSONObject(i);
                    JSONObject videoData = videoItem.getJSONObject("video");
                    // el titulo del video
                    // videoData.getString("title");
                    // la descripcion del video
                    // videoData.getString("description");
                    // el thumbnail del video
                    // videoData.getJSONObject("thumbnail").getString("sqDefault");
                }
            } catch (JSONException e) { e.printStackTrace(); }
        }
    }
}yo defini la cadena YTVideoUrl con un playlist cualquiera, la url es:
igual habría que pulir detalles como, comprobar que es una url valida, comprobar que no duevuelva un json vacio, etc.
Por favor, accede o regístrate para añadir un comentario.
Creo que la misma documentación lo explica perfectamente.
¿Cual es el problema o error que tienes?
Saludos.
Por favor, accede o regístrate para añadir un comentario.
Por favor, accede o regístrate para responder a esta pregunta.
En el blog
- 
                        - 1558913
- 1
- Jul 5, 2015
 
Sin Respuesta
- 
                    - 2077
- 0
- Oct 18, 2024
 
- 
                    - 1410
- 0
- Jul 9, 2024
 
- 
                    - 1912
- 1
- Mar 19, 2024
 
- 
                    - 1793
- 2
- Feb 26, 2024
 
- 
                    - 7628
- 0
- Nov 7, 2023
 
- 
                    - 1672
- 0
- Sep 19, 2023
 
- 
                    - 2120
- 0
- Ago 21, 2023
 
- 
                    - 1013
- 0
- May 14, 2023
 
- ver todas
Actividad Reciente
- angelAparicio respondió Mar 11Archivo PHP no procesa el paramatro POST de un For…
- Nereidas preguntó Feb 25Archivo PHP no procesa el paramatro POST de un For…
- mchojrin respondió Dic 9, 2024Ayuda , necesito mostrar datos creados solo por el…
- alyvrs preguntó Oct 19, 2024Ayuda , necesito mostrar datos creados solo por el…
- ManHol preguntó Jul 9, 2024pasar un archivo de excel a csv en python
- ArtEze respondió Abr 24, 2024Alguien sabe, no me ignoren
- ArtEze seleccionó una respuesta Abr 24, 2024Bajar extensión de Chrome sin actualizar el navega…
- ArtEze respondió Abr 24, 2024Bajar extensión de Chrome sin actualizar el navega…
- ArtEze preguntó Abr 24, 2024Bajar extensión de Chrome sin actualizar el navega…
- ArtEze respondió Abr 24, 2024No me deja instalar Oracle
Ultimas Preguntas
Usuarios Top
- Leonardo-Tadei- 227320 Puntos
 
- Peter- 150480 Puntos
 
- white- 75880 Puntos
 
- carlossevi- 63580 Puntos
 
- magarzon- 30650 Puntos
 
- pregunton- 20400 Puntos
 
Todos los Usuarios Usuarios Nuevos
...



