如何导出YouTube播放列表?


43

YouTube喜欢定期删除我的收藏夹列表中的视频:

关于已删除视频的警告

但是他们拒绝告诉我他们是什么,所以我可以去找另一本。

我想要一种导出YouTube播放列表的方法,以便可以定期对它们进行比较,并手动查找已删除歌曲的其他副本。

如何从YouTube导出播放列表(或播放列表)?


1
由于某些原因,在Android手机上查看播放列表仍会产生已删除视频的名称!

Answers:


18

据我所知,Youtube上没有内置的方法可以做到这一点。

您当然可以使用Youtube API通过以下操作轻松获取xml中的所有播放列表:

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

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

该xml文件将为每个播放列表提供唯一的ID,然后您可以使用该ID来获取每个播放列表的详细信息,包括视频URL和标题。以下API调用将再次为您提供一个xml文件:

https://gdata.youtube.com/feeds/api/playlists/[UNIQUE_ID]?v=2

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

但是,手动处理这些XML文件将是一场噩梦。最好创建一个小型Web应用程序(如果您了解一些Web编程),以便从那些XML文件中提取并显示相关信息。

您可以在此处了解有关API的更多信息:https : //developers.google.com/youtube/2.0/developers_guide_protocol_playlists


2
似乎默认情况下仅返回前25个项目。您可以添加max-results=x到URL,但是x> 50被拒绝。添加start-index=...以分页结果。
lunakid 2014年

2
这个答案似乎已经过时。Youtube API现在是3.0。
杰伊M

15

我们如何使这更容易

转到:http : //www.williamsportwebdeveloper.com/FavBackUp.aspx

将您要创建的播放列表网址以excel格式放置,仅此而已:)

这是预览图。已导出我的短片播放列表,该播放列表位于抱歉,积分不足,无法发布2个链接 在此处输入图片说明

创建者: “我的Web应用程序所做的只是使用YouTube开发者的API来获取供稿数据。您可以自己做同样的事情,但是会采用复杂的XML格式,而且可读性很差。我认为大多数人都希望将其包含在Excel电子表格中。如果您没有Microsoft Office,则可以免费下载Open Office。”


1
适用于所有收藏夹和喜欢的播放列表。
tobylane 2015年

非常感谢,我一直在寻找任何方法来进行此操作2天,并且与此相关的在线废话太多。这个网站运作良好。(只是有点慢,但仍然不到2天!)@tobylane Liked是我感兴趣的唯一列表,并且运行良好。
ashleedawg

@tobylane适用于收藏夹。我没有测试喜欢。
费米悖论


7

这不是完成您所要问的最优雅的方法,但这是我刚刚用来完成的手动方法。因为部分使用了Powershell,所以假设您使用的是Windows计算机。

脚步:

  1. 前往Google外卖
  2. 在“下载数据”页面上,取消选择除YouTube外的所有内容
  3. 展开Youtube并在“ YouTube数据”下选择“选择特定数据”,然后单击“ YouTube数据”按钮并仅选择“播放列表”,然后将“订阅”下拉列表更改为“ JSON”,然后单击下一步
  4. 准备好后下载您的Takeout数据并将其解压缩到任何位置
  5. 打开Powershell会话并执行以下语句

假设您的播放列表是“收藏夹”,您将获得“ Favorites.json”。假设我只需要播放列表中每个视频的标题以及指向该视频的链接,即可访问一个名为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 }

瞧,享受。


似乎没有导出私人播放列表(我只是“喜欢”“以后观看”,而其他不是我想要的播放列表)
polynomial_donut

这看起来很奇怪,也很令人失望。也许其他答案中的API选项是唯一真正的解决方案。
雷米·兰伯特


3

您可以使用我们开发的新网站https://www.tunemymusic.com/

您可以选择从YouTube导出特定的播放列表,所有播放列表以及所有喜欢的视频。然后,您可以将其导出为自由文本文件。

除了文本文件,我们现在正在努力添加选项以导出到csv和m3u文件


我在其中放了一个YouTube播放列表网址,没有任何反应。
TIX BRANCO

2

如今,有许多解决方案的功能甚至超出了您的要求:

但是,我认为最有效,最优雅的解决方案是仅使用youtube-dl,因为只需使用一个命令(例如,您可以通过查看文档轻松构建自己的命令),就可以下载所有播放列表项的标题(不仅标题(如果您愿意的话...),方法是输入显示所有播放列表(例如https://www.youtube.com/user/your_user_name/playlists)的页面的YouTube URL作为参数。最重要的是,它还可以选择向YouTube发送经过身份验证的请求(使用您的凭据),以便它也可以下载您的私人播放列表


1

您可以在浏览器中创建一个书签,以捕获列表中每个视频的描述,然后将它们全部打印在文本区域中。

例如,此脚本将创建一个包含网址和视频名称的列表。只需创建一个书签,然后在书签的地址(URL)中添加以下脚本:

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();

如果您不想要视频的网址,则只需删除“ var x = ID +“ \ t” + VName;“这一行。(第36行)

该脚本应工作一段时间,直到YouTube更改其HTML页面的格式。当他们这样做时,您将必须相应地调整脚本-最有可能的是,您将不得不搜索其他内容,而不是“ data-video-title =“


-1

我要做的是转到播放列表,然后右键单击播放列表的名称,然后选择“使用Windows Live发送电子邮件”。它会向您的电子邮件发送一个链接,当您单击该链接时,您便拥有了整个播放列表。


1
然后YouTube从您的播放列表中删除一个视频,然后您再次访问该电子邮件链接,您便被带到该播放列表,该视频现在丢失了,您知道吗?;)
jj_

-3

您为什么不只打开播放列表并将其复制/粘贴到Excel,Word或其他内容?它并不完美,但是信息可以作为备份。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.