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?
entre Desarrolladores
Recibe ayuda de expertos
Registrate y pregunta
Es gratis y fácil
Recibe respuestas
Respuestas, votos y comentarios
Vota y selecciona respuestas
Recibe puntos, vota y da la solución
Pregunta
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
-
- 691097
- 1
- Jul 5, 2015
Sin Respuesta
-
- 176
- 0
- Oct 18
-
- 187
- 0
- Jul 9
-
- 586
- 1
- Mar 19
-
- 462
- 2
- Feb 26
-
- 5058
- 0
- Nov 7, 2023
-
- 494
- 0
- Sep 19, 2023
-
- 498
- 0
- Ago 21, 2023
-
- 657
- 0
- May 14, 2023
- ver todas
Actividad Reciente
mchojrin respondió Dic 9
Ayuda , necesito mostrar datos creados solo por el…alyvrs preguntó Oct 19
Ayuda , necesito mostrar datos creados solo por el…ManHol preguntó Jul 9
pasar un archivo de excel a csv en pythonArtEze respondió Abr 24
Alguien sabe, no me ignorenArtEze seleccionó una respuesta Abr 24
Bajar extensión de Chrome sin actualizar el navega…ArtEze respondió Abr 24
Bajar extensión de Chrome sin actualizar el navega…ArtEze preguntó Abr 24
Bajar extensión de Chrome sin actualizar el navega…ArtEze respondió Abr 24
No me deja instalar OracleArtEze respondió Abr 24
Formulario que guarde los datos de un jsonArtEze comentó Abr 24
Script /boot/ scraping
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
...