Автопостинг из YouTube в WordPress с фильтрацией и обработкой контента

Автоматический импорт видео и данных с YouTube в WordPress — задача, которую часто ставят перед собой владельцы тематических сайтов и блогов. Автопостинг позволяет экономить время, обновлять сайт свежим контентом без ручного копирования, но требует гибкой фильтрации и обработки данных, чтобы избегать мусора и сохранять уникальность публикаций.

Почему важна фильтрация и обработка контента при автопостинге YouTube

Не все видео с YouTube подходят для вашего сайта целиком. Без фильтрации можно получить посты с нерелевантным описанием, плохим качеством видео или контентом, который не соответствует тематике. Обработка помогает форматировать текст, вставлять нужные метаданные, добавлять превью и оптимизировать SEO.

Кроме того, YouTube API ограничивает количество запросов в сутки, поэтому важно оптимизировать процесс, чтобы не превышать лимиты и не создавать избыточные запросы.

Ниже мы рассмотрим пример создания собственного автопостинга с фильтрацией по ключевым словам, длительности видео и обработкой описания перед публикацией.

Используемые инструменты и библиотеки

Для работы с YouTube API понадобится зарегистрировать проект в Google Cloud и получить API ключ. В WordPress можно использовать стандартные HTTP-запросы или библиотеку Guzzle для удобства.

Для удобства обработки контента и вставки видео используем собственные функции с префиксом wpsocial_. Такой подход помогает избежать конфликтов с другими плагинами и темами.

Пример кода: автопостинг видео из YouTube с фильтрацией

Ниже приведён пример функции, которая получает список видео по плейлисту, фильтрует их по длительности и ключевым словам, и создаёт новые записи в WordPress с видео и описанием.

function wpsocial_get_youtube_videos_and_post($playlistId, $apiKey) {
    $apiUrl = "https://www.googleapis.com/youtube/v3/playlistItems";
    $params = [
        'part' => 'snippet,contentDetails',
        'maxResults' => 10,
        'playlistId' => $playlistId,
        'key' => $apiKey
    ];
    $response = wp_remote_get(add_query_arg($params, $apiUrl));
    if (is_wp_error($response)) return;
    $data = json_decode(wp_remote_retrieve_body($response), true);
    if (empty($data['items'])) return;

    foreach ($data['items'] as $item) {
        $videoId = $item['contentDetails']['videoId'];
        $title = $item['snippet']['title'];
        $description = $item['snippet']['description'];

        // Фильтрация по ключевым словам
        $keywords = ['wordpress', 'tutorial', 'plugin'];
        $match = false;
        foreach ($keywords as $keyword) {
            if (stripos($title, $keyword) !== false || stripos($description, $keyword) !== false) {
                $match = true;
                break;
            }
        }
        if (!$match) continue;

        // Получаем длительность видео через Videos API
        $videoDetailsUrl = "https://www.googleapis.com/youtube/v3/videos?part=contentDetails&id={$videoId}&key={$apiKey}";
        $videoResponse = wp_remote_get($videoDetailsUrl);
        if (is_wp_error($videoResponse)) continue;
        $videoData = json_decode(wp_remote_retrieve_body($videoResponse), true);
        if (empty($videoData['items'])) continue;
        $durationISO = $videoData['items'][0]['contentDetails']['duration'];

        // Преобразуем ISO 8601 длительность в секунды
        $duration = new DateInterval($durationISO);
        $seconds = ($duration->h * 3600) + ($duration->i * 60) + $duration->s;

        // Фильтрация по длительности (например, только видео короче 20 минут)
        if ($seconds > 1200) continue;

        // Создаём пост, если такого ещё нет
        if (post_exists($title)) continue;

        $post_content = wpsocial_format_youtube_content($videoId, $description);

        $post_id = wp_insert_post([
            'post_title' => $title,
            'post_content' => $post_content,
            'post_status' => 'publish',
            'post_type' => 'post'
        ]);

        if ($post_id) {
            // Можно добавить мета-данные или категории
            add_post_meta($post_id, '_youtube_video_id', $videoId);
        }
    }
}

function wpsocial_format_youtube_content($videoId, $description) {
    // Очищаем описание от лишних ссылок и тегов
    $clean_desc = wp_strip_all_tags($description);
    $clean_desc = wp_trim_words($clean_desc, 40, '...');

    // Вставляем видео через iframe
    $iframe = '<iframe width="560" height="315" src="https://www.youtube.com/embed/' . esc_attr($videoId) . '" frameborder="0" allowfullscreen></iframe>';

    return $iframe . '<p>' . esc_html($clean_desc) . '</p>';
}

Как настроить и запустить автопостинг

1. Зарегистрируйте проект в Google Cloud Console и получите API ключ для YouTube Data API v3.

2. Вызовите функцию wpsocial_get_youtube_videos_and_post с нужным ID плейлиста и вашим ключом API. Например, через крон-задачу WordPress или вручную.

3. Настройте фильтрацию ключевых слов и максимальную длительность видео в коде под задачи вашего сайта.

4. Добавьте дополнительную обработку, если нужно — например, вставку превью, категории или теги.

Автоматизация с помощью WP Cron

Для регулярного обновления контента рекомендуется запланировать вызов функции с помощью WP Cron.

function wpsocial_schedule_youtube_import() {
    if (!wp_next_scheduled('wpsocial_youtube_import_hook')) {
        wp_schedule_event(time(), 'hourly', 'wpsocial_youtube_import_hook');
    }
}
add_action('wp', 'wpsocial_schedule_youtube_import');

add_action('wpsocial_youtube_import_hook', function() {
    wpsocial_get_youtube_videos_and_post('ВАШ_PLAYLIST_ID', 'ВАШ_API_KEY');
});

Альтернативные плагины для автопостинга с YouTube в WordPress

Если хочется готовое решение с настройками через интерфейс, можно рассмотреть плагины:

  • Feedzy RSS Feeds — умеет импортировать из RSS, в том числе YouTube-каналы через RSS, с фильтрацией и шаблонами.
  • WP YouTube Lyte — облегчённый плагин для вставки видео с оптимизацией, но без автопостинга.
  • Video Blogster Pro — платный плагин с мощным функционалом автопостинга из YouTube с фильтрацией.

Для интеграции с вашим сайтом и тонкой настройки фильтрации и обработки лучше написать кастомный код, как в примере выше.

Советы по улучшению автопостинга и SEO

• Добавьте уникальное вступление или комментарии к каждому посту, чтобы сделать контент уникальным и повысить SEO.

• Используйте мета-данные YouTube (теги, категории) для автоматического назначения категорий в WordPress.

• Оптимизируйте загрузку видео — используйте ленивую загрузку iframe или плагин, например, Clearfy Pro, для ускорения сайта.

• Не забывайте про регулярное обновление ключей API и мониторинг ошибок запросов.

WooCommerce: как автоматически удалять нерабочие вариации товаров
05.05.2026
Как создать автоматическую публикацию из Telegram-канала в WordPress
24.01.2026
Автопостинг из YouTube в WordPress с фильтрацией и обработкой контента
24.03.2026
Как создать собственный шорткод в WordPress с примером кода
22.11.2025
Как удалить ссылки на социальные сети из выводов WordPress
10.02.2026