¿Cómo exporto mis listas de reproducción de YouTube?

43

A YouTube le gusta eliminar periódicamente videos que están en mi lista de favoritos:

advertencia sobre videos eliminados

Pero se niegan a decirme qué eran para que pueda ir a buscar otra copia.

Me gustaría exportar mis listas de reproducción de YouTube, para poder difundirlas periódicamente y encontrar manualmente otras copias de las canciones eliminadas.

¿Cómo puedo exportar mis listas de reproducción (o una lista de reproducción) de YouTube?

Ian Boyd
fuente
1
¡Por alguna razón, ver la lista de reproducción en un teléfono Android aún arrojará los nombres de los videos que se eliminaron!

Respuestas:

18

Que yo sepa, no hay una forma integrada de hacer esto en Youtube.

Por supuesto, podría usar la API de Youtube para obtener fácilmente todas sus listas de reproducción en xml usando lo siguiente:

https://gdata.youtube.com/feeds/api/users/[YOUR_USER_NAMEfont>/playlists?v=2

Ejemplo: https://gdata.youtube.com/feeds/api/users/oisinorion/playlists?v=2

Ese archivo xml tendrá las ID únicas para cada una de sus listas de reproducción, que luego puede usar para obtener los detalles de cada lista de reproducción, incluidas las URL y títulos de los videos. La siguiente llamada a la API nuevamente le dará un archivo xml:

https://gdata.youtube.com/feeds/api/playlists/[UNIQUE_IDfont>?v=2

Ejemplo: https://gdata.youtube.com/feeds/api/playlists/D5F03C2BE1AA3E7E?v=2

Sin embargo, trabajar con esos archivos XML manualmente sería una pesadilla. Sería mejor crear una pequeña aplicación web (si conoce un poco de programación web) para extraer y presentar la información relevante de esos archivos XML.

Puede leer más sobre la API aquí: https://developers.google.com/youtube/2.0/developers_guide_protocol_playlists

Diseños OAC
fuente
2
Parece que solo los primeros 25 elementos se devuelven de forma predeterminada. Puede agregar max-results=xa la URL, pero se rechaza x> 50. Agregar start-index=...para paginar los resultados.
lunakid
2
Esta respuesta parece obsoleta. La API de Youtube ahora es 3.0.
Jay M
15

¿Qué tal si hacemos esto más fácil?

Vaya a: http://www.williamsportwebdeveloper.com/FavBackUp.aspx

Ponga en la lista de reproducción-url que desea crear en formato Excel, eso es todo :)

Aquí hay una vista previa de cómo se ve. He exportado mi lista de reproducción de cortometrajes que se encuentra perdón, no hay suficientes créditos para publicar 2 enlaces ingrese la descripción de la imagen aquí

El creador: 'Todo lo que hace mi aplicación web es usar la API del desarrollador de YouTube para obtener los datos del feed. Puede hacer lo mismo usted mismo, pero estaría en un formato XML complicado y no muy legible. Creo que la mayoría de las personas prefieren tenerlo en una hoja de cálculo de Excel. Si no tiene Microsoft Office, puede descargar Open Office de forma gratuita.

usuario2253392
fuente
1
Eso funciona para todas las listas de reproducción, excepto las favoritas y las que gustan.
tobylane
MUCHAS GRACIAS, he estado buscando cualquier forma de hacer esto durante 2 días, y hay tanta basura desactualizada en línea relacionada con esto. Este sitio funcionó perfectamente. (¡solo un poco lento pero todavía <2 días!) @tobylane Likedera la única lista que me interesaba y funcionaba perfectamente.
ashleedawg
@tobylane funciona para favoritos. No lo probé por me gusta.
Fermi paradoja
9

A la luz de la depreciación de v2, la respuesta actual ya no funciona. v3 es la nueva versión.

El enlace de documentación: https://developers.google.com/youtube/v3/docs/playlistItems/list

Esto limita a solo 50 resultados. Rellene lo siguiente

Enlace de ejemplo: https://www.googleapis.com/youtube/v3/playlistItems?part=contentDetails&maxResults=50&pageToken=NNNNN&playlistId=PLXxxx=key=yyyy

Sairam
fuente
7

Esta no es la forma más elegante de lograr lo que pides, pero aquí hay un método manual que acabo de usar para hacerlo. Debido a que estoy usando Powershell para parte de esto, supongo que estás en una máquina con Windows.

Pasos:

  1. Ir a Google Takeout
  2. En la página Descargar sus datos, anule la selección de todo excepto YouTube
  3. Expanda Youtube y seleccione "Seleccionar datos específicos" en "Datos de YouTube", luego haga clic en el botón "Datos de YouTube" y seleccione solo "Listas de reproducción", luego cambie el menú desplegable "Suscripciones" a "JSON", luego haga clic en Siguiente
  4. Descargue sus datos de Takeout cuando esté listo y descomprímalos en cualquier lugar
  5. Abra una sesión de Powershell y ejecute las siguientes declaraciones

Suponiendo que su lista de reproducción sea Favoritos, obtendrá un Favorites.json. Digamos que quiero solo el título de cada video en la lista de reproducción y un enlace a él, en un archivo de texto llamado YoutubeFavorites.txt:

$json = ConvertFrom-Json (Get-Content .\Favorites.json -Raw)
foreach ($vid in $json) { "$($vid.snippet.Title) - Link: https://www.youtube.com/watch?v=$($vid.contentDetails.videoId)" | Out-File -FilePath .\YoutubeFavorites.txt -Append }

Voila, disfruta.

Remy Lambert
fuente
Parece que las listas de reproducción privadas no se exportan (solo obtuve 'me gusta', 'ver más tarde' y algo más que no era la lista de reproducción que estaba buscando)
polynomial_donut
Eso parece bastante extraño, también decepcionante. Quizás las opciones de API en otras respuestas son las únicas soluciones reales.
Remy Lambert
3

Puede hacerlo con un nuevo sitio que desarrollamos https://www.tunemymusic.com/

Puedes elegir exportar desde Youtube una lista de reproducción específica, todas tus listas de reproducción y también todos tus videos favoritos. Luego puede exportarlo a un archivo de texto libre.

Además del archivo de texto, ahora estamos trabajando para agregar opciones para exportar a archivos csv y m3u

tunemymusic
fuente
Puse una URL de la lista de reproducción de YouTube en ella y no pasó nada.
TIX BRANCO
2

Hoy en día hay muchas soluciones que hacen incluso más de lo que solicitó:

Pero la solución más eficiente y elegante sería, en mi opinión, usar youtube-dl porque con un solo comando como (que puedes construir fácilmente mirando los documentos) puedes descargar TODOS los títulos de tus listas de reproducción (bueno, no solo el títulos, si le importaba ...), ingresando como parámetro la URL de YouTube a la página que muestra todas sus listas de reproducción (por ejemplo, https://www.youtube.com/user/your_user_name/playlists ). Además de eso, también tiene una opción para realizar solicitudes autenticadas a YouTube (con sus credenciales) para que también pueda descargar sus listas de reproducción privadas .

jj_
fuente
1

Puede hacer un Bookmarklet en su navegador para capturar la descripción de cada video en la lista y luego imprimirlos en un área de texto.

Por ejemplo, este script creará una lista con las URL y los nombres de los videos. Simplemente cree un marcador y agregue el siguiente script en la dirección (URL) del marcador:

javascript:var Description = "Export YouTube playlists. This script is in the Public Domain - created at: 2016-11-21";
function printline(myLine) {
  document.write(myLine+"\n");
};
function showlinks() {
  var today = new Date();
  var day = today.getDate();
  var month = today.getMonth()+1;
  var year = today.getFullYear();
  document.write("<html><head><title>YouTube list: " + Title + "</title></head><body>");
  printline("<textarea name='Links' rows='55' cols='200'>");
  printline(year + "-" + month + "-" + day);
  printline(Title +"\n"+url);
  printline("");
  for (i=0; i<lines.length; i++) printline(lines[i]);
  printline("</textarea>");
  document.write("</body></html>");
};
var url = document.URL;
var body = document.body.innerHTML;
var lines = [];
if (url.match(/youtube.com/)) {
  var x = body.match(/data-list-title=.*/)[0];
  var x = x.replace(/.*data-list-title="/, '');
  var Title = x.replace(/".*/, '');
  var body = body.replace(/data-video-id="/g, 'data-video-id="https://www.youtube.com/watch?v=');
  if (body.match(/li class=.yt-uix-scroller-scroll-unit/)) {
    var matches = body.match(/li class=.yt-uix-scroller-scroll-unit.*/g);
    for(i=0; i<matches.length; i++) {
      var x = matches[i];
      var ID = x.replace(/.*data-video-id=./, "");
      var ID = ID.replace(/".*/, "");
      var VName = x.replace(/.*data-video-title=./, "");
      var VName = VName.replace(/".*/, "");
      var x = VName;
      var x = ID + "\t" + VName;
      lines.push(x);
    };
  };
};
showlinks();

En caso de que no desee las URL de los videos, simplemente elimine la línea "var x = ID +" \ t "+ VName;" (línea 36)

Este script debería funcionar por un tiempo, hasta que YouTube cambie el formato de sus páginas HTML. Cuando lo hagan, deberá ajustar el guión en consecuencia; lo más probable es que tenga que buscar otra cosa en lugar de "data-video-title ="

Código de oso
fuente
-1

Lo que hice fue ir a mi lista de reproducción e hice clic derecho en el nombre de mi lista de reproducción y luego seleccioné "correo electrónico con Windows Live". Envía un enlace a su correo electrónico y cuando hace clic en el enlace tiene toda su lista de reproducción.

skeetz
fuente
1
luego YouTube elimina un video de tu lista de reproducción y luego visitas el enlace enviado por correo electrónico nuevamente y te llevan a esa lista de reproducción, donde ahora falta el video, ¿sabes? ;)
jj_
-3

¿Por qué no abre la lista de reproducción y la copia / pega en Excel, Word o lo que sea? No es exactamente elegante, pero la información está ahí como una copia de seguridad.

ninja
fuente