Jak mogę wyeksportować moje listy odtwarzania YouTube?

43

YouTube lubi okresowo usuwać filmy z mojej listy ulubionych:

ostrzeżenie o usuniętych filmach

Ale nie chcą mi powiedzieć, jakie były, abym mógł znaleźć kolejną kopię.

Chciałbym znaleźć sposób na wyeksportowanie moich list odtwarzania YouTube, aby móc je okresowo różnicować i ręcznie znajdować inne kopie usuniętych utworów.

Jak mogę wyeksportować moje listy odtwarzania (lub listę odtwarzania) z YouTube?

Ian Boyd
źródło
1
Z jakiegoś powodu przeglądanie listy odtwarzania na telefonie z Androidem nadal będzie zawierać nazwy usuniętych filmów!

Odpowiedzi:

18

O ile mi wiadomo, nie ma wbudowanego sposobu, aby to zrobić na Youtube.

Możesz oczywiście użyć interfejsu Youtube API, aby łatwo uzyskać wszystkie swoje listy odtwarzania w formacie XML, korzystając z następujących opcji:

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

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

Ten plik xml będzie miał unikalne identyfikatory dla każdej listy odtwarzania, których możesz użyć, aby uzyskać szczegółowe informacje na temat każdej listy odtwarzania, w tym adresy URL filmów i tytuły. Poniższe wywołanie API ponownie da ci plik xml:

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

Przykład: https://gdata.youtube.com/feeds/api/playlists/D5F03C2BE1AA3E7E?v=2

Jednak ręczna praca z tymi plikami XML byłaby koszmarem. Najlepiej byłoby stworzyć małą aplikację internetową (jeśli znasz się na programowaniu internetowym), aby wyciągnąć i przedstawić odpowiednie informacje z tych plików XML.

Możesz przeczytać więcej o interfejsie API tutaj: https://developers.google.com/youtube/2.0/developers_guide_protocol_playlists

Projekty OAC
źródło
2
Wygląda na to, że domyślnie zwracane są tylko pierwsze 25 pozycji. Możesz dodać max-results=xdo adresu URL, ale x> 50 zostanie odrzucone. Dodaj start-index=...do stronicowania wyników.
lunakid
2
Ta odpowiedź wydaje się nieaktualna. Youtube API ma teraz 3.0.
Jay M
15

A może ułatwimy to ...

Przejdź do: http://www.williamsportwebdeveloper.com/FavBackUp.aspx

Wprowadź adres URL listy odtwarzania, który chcesz utworzyć, w formacie Excel, to wszystko :)

Oto podgląd, jak to wygląda. Wyeksportowałem moją playlistę filmów krótkometrażowych, która znajduje się przepraszam za mało kredytów, aby opublikować 2 linki wprowadź opis zdjęcia tutaj

Twórca: „Cała moja aplikacja internetowa korzysta z interfejsu API programisty YouTube, aby uzyskać dane kanału. Możesz zrobić to samo, ale byłby to skomplikowany format XML i niezbyt czytelny. Myślę, że większość ludzi wolałaby mieć to w arkuszu kalkulacyjnym Excel. Jeśli nie masz pakietu Microsoft Office, możesz bezpłatnie pobrać pakiet Open Office ”.

użytkownik2253392
źródło
1
Działa to na wszystkich listach odtwarzania oprócz ulubionych i podobnych.
tobylan
Dzięki tak dużo, szukałem dla każdej sposób to zrobić na 2 dni, a tam tyle nieaktualne bzdura line z tym związane. Ta strona działała idealnie. (tylko trochę powolnie, ale wciąż <2 dni!) @tobylane Likedbyła jedyną listą, która mnie zainteresowała i działała idealnie.
ashleedawg
@tobylane działa dla ulubionych. Nie testowałem tego pod kątem polubień.
Paradoks Fermi
9

W świetle wycofania wersji 2 bieżąca odpowiedź nie działa. v3 to nowa wersja.

Link do dokumentacji - https://developers.google.com/youtube/v3/docs/playlistItems/list

Ogranicza to tylko do 50 wyników. Wypełnij następujące pola

Przykładowy link - https://www.googleapis.com/youtube/v3/playlistItems?part=contentDetails&maxResults=50&pageToken=NNNNN&playlistId=PLXxxx=key=yyyy

Sairam
źródło
7

Nie jest to najbardziej elegancki sposób na osiągnięcie tego, o co prosisz, ale oto metoda ręczna, której właśnie użyłem. Ponieważ używam Powershell do tego, zakładam, że jesteś na komputerze z systemem Windows.

Kroki:

  1. Przejdź do Google Takeout
  2. Na stronie Pobierz swoje dane odznacz wszystko oprócz Youtube
  3. Rozwiń YouTube i wybierz „Wybierz określone dane” w „Dane YouTube”, następnie kliknij przycisk „Dane YouTube” i wybierz tylko „Listy odtwarzania”, następnie zmień menu „Subskrypcje” na „JSON”, a następnie kliknij Dalej
  4. Pobierz dane Takeout, gdy będą gotowe, i rozpakuj je w dowolnym miejscu
  5. Otwórz sesję PowerShell i wykonaj poniższe instrukcje

Zakładając, że twoja lista odtwarzania jest Ulubiona, otrzymasz Favorites.json. Powiedzmy, że chcę tylko tytuł każdego filmu na liście odtwarzania i link do niego w pliku tekstowym o nazwie 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, ciesz się.

Remy Lambert
źródło
Wygląda na to, że prywatne listy odtwarzania nie są eksportowane („polubiłem” „oglądam później” i coś innego, czego nie szukałem)
polynomial_donut
To wydaje się dość dziwne, a także rozczarowujące. Być może opcje API w innych odpowiedziach są jedynymi prawdziwymi rozwiązaniami.
Remy Lambert
3

Możesz to zrobić dzięki nowej stronie, którą opracowaliśmy https://www.tunemymusic.com/

Możesz wybrać eksport z YouTube określonej listy odtwarzania, wszystkich list odtwarzania, a także wszystkich swoich ulubionych filmów. Następnie możesz go wyeksportować do dowolnego pliku tekstowego.

Oprócz pliku tekstowego pracujemy teraz nad dodaniem opcji eksportu do plików csv i m3u

tunemymusic
źródło
Umieściłem w nim adres URL playlisty YouTube i nic się nie wydarzyło.
TIX BRANCO
2

W dzisiejszych czasach istnieje wiele rozwiązań, które robią nawet więcej niż to, o co prosiłeś:

Ale moim zdaniem najbardziej wydajnym i eleganckim rozwiązaniem byłoby po prostu użycie youtube-dl, ponieważ za pomocą jednego polecenia, takiego jak (które możesz łatwo zbudować, przeglądając dokumenty), możesz pobrać WSZYSTKIE tytuły z list odtwarzania (nie tylko tytuły, jeśli Ci na tym zależało ...), wpisując jako parametr adres URL YouTube na stronie pokazującej wszystkie Twoje listy odtwarzania (np. https://www.youtube.com/user/your_user_name/playlists ). Ponadto ma również możliwość wysyłania uwierzytelnionych żądań do YouTube (przy użyciu poświadczeń), aby mógł również pobierać prywatne listy odtwarzania .

jj_
źródło
1

Możesz utworzyć zakładkę w przeglądarce, aby złapać opis każdego filmu na liście, a następnie wydrukować je wszystkie w polu tekstowym.

Na przykład ten skrypt utworzy listę z adresem URL i nazwami filmów. Wystarczy utworzyć zakładkę i dodać następujący skrypt w adresie (URL) zakładki:

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

Jeśli nie chcesz mieć adresu URL filmów, po prostu usuń wiersz „var x = ID +” \ t ”+ VName;” (linia 36)

Ten skrypt powinien działać przez chwilę, dopóki YouTube nie zmieni formatowania swoich stron HTML. Kiedy to zrobią, będziesz musiał odpowiednio dostosować skrypt - najprawdopodobniej będziesz musiał poszukać czegoś innego zamiast „data-video-title =”

BearCode
źródło
-1

To, co zrobiłem, to przejście do mojej listy odtwarzania i kliknięcie prawym przyciskiem myszy nazwy mojej listy odtwarzania, a następnie wybranie „e-mail z Windows Live”. Wysyła link do twojej wiadomości e-mail, a po kliknięciu linku masz całą listę odtwarzania.

skeetz
źródło
1
następnie YouTube usuwa film z listy odtwarzania, a następnie ponownie odwiedzasz przesłany w wiadomości e-mail link i przechodzisz do tej listy odtwarzania, na której brakuje filmu, wiesz? ;)
jj_
-3

Dlaczego po prostu nie otworzysz listy odtwarzania i skopiujesz / wkleisz ją do Excela, Worda lub czegokolwiek? To nie jest dokładnie elegancki, ale informacje są tam jako kopia zapasowa.

ninja
źródło