Сообщество RSS DEV

Добавление миниатюр YouTube и реальных названий в существующие проекты — без миграции

Follow
Проект ClipCrafter был направлен на улучшение пользовательского опыта карточек проектов путем отображения фактических названий видеороликов YouTube и миниатюр. Первоначально карточки проектов показывали только общие названия, такие как "Видеоролик YouTube (ID_ВИДЕО)", без миниатюр. Хранение этой информации напрямую потребовало бы миграций базы данных и обратного заполнения. Однако команда нашла способ добиться этого без изменений инфраструктуры. Для названий видеороликов они использовали бесплатный API oEmbed от YouTube, который предоставляет метаданные видеоролика, включая название. Этот вызов API выполняется во время создания проекта, и если он не удается, используется резервное название с идентификатором видеоролика. Полученное название затем хранится вместе с проектом. Для миниатюр они использовали предсказуемый шаблон URL-адреса миниатюры YouTube, который требует только идентификатор видеоролика. Идентификатор видеоролика извлекается либо из хранящегося URL-адреса YouTube для новых проектов, либо из формата названия для старых проектов. Этот подход динамически генерирует URL-адреса миниатюр для существующих и новых проектов. Домен миниатюр YouTube был добавлен в конфигурацию приложения, чтобы разрешить отображение удаленных изображений. Компонент карточки проекта был обновлен для условного рендеринга миниатюры, если найден действительный источник. Это решение избегает миграций базы данных, скриптов обратного заполнения и необходимости в ключах API. Статья завершается подчеркиванием более широкого шаблона: прежде чем реализовывать новую инфраструктуру, следует рассмотреть, можно ли получить необходимые данные из существующих записей базы данных, бесплатных API платформ или предсказуемых структур URL-адресов. Этот подход может существенно улучшить пользовательский опыт с минимальными усилиями разработки.
favicon
dev.to
Adding YouTube thumbnails and real titles to existing projects — without a migration