Недавно открыл для себя гугловский Notebook LM и когда решил собрать в нем базу знаний по SEO озадачился вопросом – как быстро вытащить список видео с YouTube без сторонних сервисов и написания парсера на Python.
В топе выдачи мне попался интересный и рабочий способ как с помощью JavaScript вывести в консоль браузера список необходимых материалов.
Парсинг списка видео на Youtube
Итак, представим – перед нами нужный YouTube-канал.
Для начала открываем консоль разработчика (правой кнопкой, исследовать элемент), переключаемся на вкладку Console и вводим команду чтобы выполнить скролл до конца списка видео. Нам нужно чтобы все видео прогрузились.
var scroll = setInterval(function() { window.scrollBy(0, 1000); }, 1000);
Данный код запустит скролл страницы на 1000 пикселей раз в секунду.
Когда мы доскроллили до конца (или решили остановиться) вводим команду:
clearInterval(scroll);
Отлично, все видео прогрузились – теперь нужно собрать все ссылки и названия из элементов на странице и вывести в консоль.
console.clear();
const urls = document.querySelectorAll('a#video-title-link');
urls.forEach(video => console.log(`${video.title}\t${video.href}`));
Данный код очищает консоль, затем находит все элементы являющиеся ссылками (тег <a>) с id=video-title-link, а затем для каждого элемента среди найденных выводит в консоль заголовок и ссылку на видео.

Готово, в консоль вывели все видео – копируем их в Google Sheets и осталось только почистить лишние символы с помощью поиска и замены.
Парсинг списка статей на Medium
Имея под рукой ChatGPT можно адаптировать данную логику под любой проект с бесконечным скроллом.
Например, у меня давно была открыта вкладка на Medium с материалами про Data Science

Выполнив на шаге 3 следующий скрипт в консоли быстро получаем все материалы со страницы – заголовок, ссылку, дату публикации и автора:
console.clear();
const posts = document.querySelectorAll('article[data-testid="post-preview"]');
posts.forEach(post => {
// Заголовок
const titleEl = post.querySelector('h2');
const title = titleEl ? titleEl.textContent.trim() : '';
// Ссылка (полная, из data-href)
const linkEl = post.querySelector('div[role="link"][data-href]');
const link = linkEl ? linkEl.getAttribute('data-href') : '';
// Автор
const authorEl = post.querySelector('a[href^="/@"] p');
const author = authorEl ? authorEl.textContent.trim() : '';
// Дата (всплывающая надпись «Added <span>…</span>»)
const dateEl = post.querySelector('span.ez span');
const date = dateEl ? dateEl.textContent.trim() : '';
console.log(`${title}\t${link}\t${date}\t${author}`);
});
Да, данный способ не заменит полноценный парсер, но когда нужно быстро и один раз вытащить данные из какого-то сервиса вполне сойдет за способ автоматизации.