Как создать плейлист из нескольких идентификаторов видео на YouTube?

У меня есть множество идентификаторов видео (200+), и я хотел бы создать список воспроизведения YouTube, используя все идентификаторы видео. Я пробовал решения отсюда: https://webapps.stackexchange.com/questions/120451/how-to-create-a-playlist-form-a-list-of-links-not-from-bookmarks

Ни одно из этих решений не сработало, и у большинства из них было ограничение на 50 видео. В приведенном коде Python было только первое видео, и ни одно из других видео. Первый способ тоже не сработал, и лист excel при копировании у меня полностью сломался.

Могу ли я добавить эти видео в плейлист, кроме ручного? НАПРИМЕР. Используете создатель плейлистов или программу / api? Спасибо.


person Community    schedule 19.05.2020    source источник
comment
Проверьте этот ответ.   -  person Marco Aurelio Fernandez Reyes    schedule 03.10.2020
comment
используя обычный графический интерфейс, вы имеете в виду создать плейлист вроде this? - если так, то не знаю, возможно ли это.   -  person Marco Aurelio Fernandez Reyes    schedule 05.10.2020


Ответы (2)


Источник / кредиты: Создайте плейлист YouTube без Аккаунт с этой уловкой с URL


Следуя этой структуре, вы можете создать плейлист без названия:

http://www.youtube.com/watch_videos?video_ids=ID1,ID2,ID3,ID4

Это созданный мной пример:

http://www.youtube.com/watch_videos?video_ids=nWyetldx4PU,gvubjVKOMuc,M3emJNkMmnA,QL2ohdMRck0,irTjCnHmU-E

После вставки предыдущего URL-адреса в браузер он изменился на: https://www.youtube.com/watch?v=nWyetldx4PU&list=TLGGyc5oTGfqXdswNjEwMjAyMA

person Mauricio Arias Olave    schedule 06.10.2020
comment
Может быть, TL означает временный список; если это правда, то возникает естественный вопрос: как долго YouTube сохраняет этот временный плейлист живым (т. е. действительным)? - person stvar; 06.10.2020
comment
Интересные факты: (1) каждый раз, когда я обращался к URL-адресу, указанному выше http://www.youtube.com/watch_videos?video_ids=nWyetldx4PU,gvubjVKOMuc,M3emJNkMmnA,QL2ohdMRck0,irTjCnHmU-E, веб-интерфейс YouTube отвечал тем же URL-адресом плейлиста, как показано выше; таким образом, серверная часть не создает новые временные списки воспроизведения каждый раз при обращении к одному и тому же списку идентификаторов видео. - person stvar; 06.10.2020
comment
(2) конечная точка API Playlists.list не возвращает никаких _ 2_ при запросе с id=TLGGyc5oTGfqXdswNjEwMjAyMA (ответ содержит пустой массив items: "items":[]) . - person stvar; 06.10.2020
comment
@stvar Я полагаю, что TLGGyc5oTGfqXdswNjEwMjAyMA содержит закодированные / запутанные URL-адреса, используемые в ссылке. Я ищу документацию по этому поводу, но я не думаю, что она доступна. - person Mauricio Arias Olave; 06.10.2020
comment
Такого плейлиста (TL...) я до сих пор не встречал ни в официальных документах, ни где-либо еще. - person stvar; 06.10.2020

  1. если у вас есть URL-адреса видео, получите идентификаторы видео с помощью регулярного выражения.

  2. затем создайте список воспроизведения с помощью ответа @Mauricio Arias Olave. или вы также можете следить за моим видео https://youtu.be/_gaVUYfWb6g

  3. затем с помощью этого кода Js ниже вы можете преобразовать список воспроизведения в постоянный список воспроизведения в своей учетной записи YouTube. Он просто добавляет эти видео в первый доступный список воспроизведения. els2[1].click(); вы можете изменить номер в этой строке, чтобы выбрать другой список воспроизведения. вам нужно будет запустить этот код в консоли браузера.

это будет работать, пока YouTube не изменит свой HTML lol.

(function myLoop(i) {
  setTimeout(function() {
    console.log(i);
    letters[i].click();
    var els = document.querySelectorAll(".style-scope.ytd-menu-service-item-renderer");
    console.log(els);
    if(els.length){
        els[6].click();
        var els2 =  document.querySelectorAll(".checkbox-height.style-scope.ytd-playlist-add-to-option-renderer");
        if(els2.length){
            els2[1].click();
             console.log("saved in playlist");
        }
    }

    document.getElementsByTagName("body")[0].click();
    if (--i) myLoop(i);   //  decrement i and call myLoop again if i > 0
  }, 3000)
})(letters.length-1);
person Arif khan    schedule 04.06.2021