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
-
- 406009
- 1
- Jul 5, 2015
Preguntas sin respuesta
-
- 21
- 0
- hace 1 día
-
- 29
- 0
- hace 5 días
-
- 272
- 0
- Feb 18
-
- 196
- 0
- Nov 23, 2022
-
- 119
- 0
- Nov 17, 2022
-
- 130
- 0
- Nov 4, 2022
-
- 190
- 0
- Nov 1, 2022
-
- 158
- 0
- Oct 27, 2022
- ver todas las preguntas
Actividad Reciente
maldaron preguntó hace 1 día
herramientas para desarrolo webRoosevelt preguntó hace 5 días
Servicios AWS para red socialelporfirio respondió Feb 22
Construir URL para actualizar contraseña después d…hector2023 preguntó Feb 18
hola alguien sabe como instalar un gui qt creator …elena preguntó Feb 14
Construir URL para actualizar contraseña después d…seniorit respondió Ene 18
¿Como poner privilegio o niveles a los usuarios en…seniorit respondió Ene 10
Como muestro un objeto test(preguntas-respuestas) …yoelrodguez respondió Dic 2, 2022
servidor local xamp disponibile fuera de lanmchojrin respondió Nov 25, 2022
servidor local xamp disponibile fuera de lanPeter comentó Nov 23, 2022
Formulario que guarde los datos de un json
Ultimas Preguntas
Usuarios Top
- Leonardo-Tadei
- 227320 Puntos
- Peter
- 150420 Puntos
- white
- 75880 Puntos
- carlossevi
- 63580 Puntos
- magarzon
- 30650 Puntos
- pregunton
- 20400 Puntos
Todos los Usuarios Usuarios Nuevos
...