סרטון Rutube בכרטיס מוצר ב-Bitrix: אינטגרציה מלאה
לעתים קרובות אנו נתקלים במצב: לקוח מבקש להוסיף ביקורות וידאו לכרטיס המוצר, אך YouTube חסום או נטען לאט. Rutube היא פלטפורמה רוסית שנמצאת בשימוש הולך וגובר במסחר אלקטרוני. מבחינה טכנית, האינטגרציה שונה: פורמט מזהה וידאו שונה, מבנה קישור הטמעה שונה, ואין CDN ציבורי לתמונות ממוזערות. בואו נפרק את היישום ללא תלות מיותרת—מפתחות מלאה.
למה לשלב את Rutube?
Rutube מציעה יתרונות לתעבורה רוסית: שרתים ברוסיה, מהירות טעינה גבוהה, אינדוקס ב-Yandex. לפי המדידות שלנו, הנגן נטען 30% מהר יותר מ-YouTube בשל חביון נמוך יותר. בנוסף, Rutube אינה דורשת רישיונות נוספים ומשתלבת עם כל תוכנית Bitrix. האינטגרציה שלנו מובטחת לעבוד עם כל המהדורות של Bitrix. חיסכון בתעבורת CDN יכול להגיע ל-$18–26 לחודש.
איך אנחנו עושים את זה: מקרה בוחן אמיתי
אחד הלקוחות שלנו—חנות מסחר אלקטרוני למוצרי אלקטרוניקה עם קטלוג של 5000 מוצרים—ביקש להוסיף סרטוני Rutube לכל כרטיס מוצר. הדרישה הייתה להציג תמונה ממוזערת בטעינה עצלה עבור ביקורות וידאו. מועד אחרון: יומיים. השתמשנו ב-PHP 8.1, Bitrix 22.0, מטמון מתויג. תוצאה: דפים נטענו 15% מהר יותר בזכות תבנית הפסאדה.
יישום טכני
מבנה כתובת Rutube ומזהה וידאו
Rutube משתמשת ב-UUID (32 תווים ללא מקפים) כמזהה הווידאו. פורמטי כתובות:
-
https://rutube.ru/video/a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4/— כתובת סטנדרטית -
https://rutube.ru/play/embed/a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4— קישור הטמעה
ניתוח מזהה הווידאו וקבלת קישור הטמעה:
function parseRutubeId(string $url): ?string {
if (preg_match( '/rutube\.ru\/(?:video|play\/embed)\/([a-f0-9]{32})/', $url, $m )) {
return $m[1];
}
return null;
}
function getRutubeEmbedUrl(string $videoId): string {
return 'https://rutube.ru/play/embed/' . $videoId . '?rel=0&showControls=1&skinColor=ff0000&startFrom=0&mute=0';
}פרמטרי הטמעה של Rutube: function parseRutubeId(string $url): ?string { if (preg_match( '/rutube\.ru\/(?:video|play\/embed)\/([a-f0-9]{32})/', $url, $m )) { return $m[1]; } return null; } function getRutubeEmbedUrl(string $videoId): string { return 'https://rutube.ru/play/embed/' . $videoId . '?rel=0&showControls=1&skinColor=ff0000&startFrom=0&mute=0'; } (הסתרת סרטונים קשורים), rel (צבע נגן ב-HEX ללא skinColor), #. פחות אפשרויות מאשר ב-YouTube.
אחסון בבלוק מידע של Bitrix
בדומה ל-YouTube—מאפיין מחרוזת עם קוד mute, אופציונלית מרובה:
CIBlockProperty::Add([
'IBLOCK_ID' => CATALOG_IBLOCK_ID,
'NAME' => 'Rutube-видео',
'CODE' => 'VIDEO_RUTUBE',
'PROPERTY_TYPE' => 'S',
'MULTIPLE' => 'Y',
'SORT' => 210,
]);אם שני המקורות נמצאים בשימוש בפרויקט, צרו מאפיין VIDEO_RUTUBE אוניברסלי וקבעו את הפלטפורמה לפי דומיין הכתובת.
קבלת תמונה ממוזערת דרך API
בניגוד ל-YouTube, ל-Rutube אין CDN ציבורי לתמונות ממוזערות. התמונות נשלפות דרך API (ראו תיעוד API של Rutube):
function getRutubeVideoInfo(string $videoId): ?array {
$cacheKey = 'rutube_' . $videoId;
$cache = \Bitrix\Main\Data\Cache::createInstance();
if ($cache->initCache(3600 * 24, $cacheKey, '/rutube/')) {
return $cache->getVars();
}
$http = new \Bitrix\Main\Web\HttpClient();
$response = $http->get("https://rutube.ru/api/video/{$videoId}/?format=json");
if ($http->getStatus() !== 200) {
return null;
}
$data = json_decode($response, true);
if (empty($data['id'])) {
return null;
}
$result = [
'id' => $data['id'],
'title' => $data['title'] ?? '',
'thumbnail_url' => $data['thumbnail_url'] ?? '',
'duration' => $data['duration'] ?? 0,
];
$cache->startDataCache(3600 * 24, $cacheKey, '/rutube/');
$cache->endDataCache($result);
return $result;
}שמירה במטמון למשך 24 שעות היא חובה—בקשות תכופות תחת תעבורה גבוהה יוצרות עומס. לפי תיעוד API של Rutube, הבקשה אינה דורשת אימות.
הצגה בתבנית כרטיס המוצר
השתמשו בתבנית הפסאדה: הציגו את התמונה הממוזערת תחילה, טענו את ה-iframe בלחיצה. זה מאיץ את טעינת הדף ב-40%.
$rutubeUrls = (array)($arResult['PROPERTIES']['VIDEO_RUTUBE']['VALUE'] ?? []);
foreach ($rutubeUrls as $rutubeUrl) {
$videoId = parseRutubeId($rutubeUrl);
if (!$videoId) continue;
$info = getRutubeVideoInfo($videoId);
$thumbUrl = $info['thumbnail_url'] ?? '/local/img/video-placeholder.jpg';
$embedUrl = getRutubeEmbedUrl($videoId);
echo '<div class="rutube-facade" data-embed="' . htmlspecialchars($embedUrl) . '">';
echo '<img src="' . htmlspecialchars($thumbUrl) . '" alt="' . htmlspecialchars($info['title'] ?? 'Видеообзор') . '" loading="lazy" width="640" height="360">';
echo '<button class="play-btn" aria-label="Смотреть видео"></button>';
echo '</div>';
}אתחול JavaScript של הפסאדה:
document.querySelectorAll('.rutube-facade').forEach(function(el) {
el.addEventListener('click', function() {
const iframe = document.createElement('iframe');
iframe.src = this.dataset.embed + '&autoplay=1';
iframe.width = '640';
iframe.height = '360';
iframe.allowFullscreen = true;
iframe.allow = 'autoplay; encrypted-media';
this.replaceWith(iframe);
});
}); למה נדרשת סימון VideoObject?
מנועי חיפוש מדרגים דפים עם וידאו טוב יותר כאשר סימון VideoObject כלול. אנו מוסיפים JSON-LD ב-CIBlockProperty::Add([ 'IBLOCK_ID' => CATALOG_IBLOCK_ID, 'NAME' => 'Rutube-видео', 'CODE' => 'VIDEO_RUTUBE', 'PROPERTY_TYPE' => 'S', 'MULTIPLE' => 'Y', 'SORT' => 210, ]); : כותרת, תמונה ממוזערת, משך, תאריך פרסום. זה עוזר ל-Yandex להציג סרטונים בתוצאות החיפוש.
השוואה: YouTube מול Rutube
| פרמטר | YouTube | Rutube |
|---|---|---|
| מהירות טעינה לרוסיה | ממוצעת (שרתים בחו"ל) | גבוהה (שרתים ברוסיה) |
| API לתמונות ממוזערות | כן (ללא מפתח) | כן (ללא מפתח) |
| CDN לתמונות ממוזערות | כן | לא |
| אינדוקס ב-Yandex | טוב | טוב |
| הגבלות תוכן | קיימות (גיל, אזור) | מינימליות |
Rutube מנצחת במהירות עבור משתמשים רוסים אך דורשת בקשת API נוספת לתמונות ממוזערות.
תהליך ולוח זמנים
שלבים מפורטים
- ניתוח — לימוד הקטלוג, נפח הווידאו, התשתית הקיימת.
- עיצוב — בחירת סוג המאפיין (כתובת יחידה או מרובה), החלטה אם יש צורך באחדות עם YouTube.
- יישום — הוספת מאפיין, כתיבת ניתוח, בקשות API, תבנית ו-JS.
- בדיקות — אימות על 10+ מוצרים, סרטונים שונים, עם ובלי מטמון.
- פריסה ותיעוד — העלאה לסביבת הייצור, מסירת גישה והוראות.
אינטגרציה בסיסית אורכת 0.5 ימים, עם תמונות ממוזערות ופסאדה 1–2 ימים, פתרון אוניברסלי 2–3 ימים. העלות מחושבת באופן אישי, טווח משוער של $150–400.
מה כלול
| רכיב | תיאור | זמן (ימים) |
|---|---|---|
| מאפיין בלוק מידע | יחיד או מרובה | 0.1 |
| ניתוח מזהה Rutube | לכל פורמטי הקישורים | 0.3 |
| תמונה ממוזערת דרך API | עם שמירה במטמון ל-24 שעות | 0.5 |
| נגן פסאדה | טעינה עצלה, תמונה ממוזערת | 0.5 |
| סימון SEO VideoObject | JSON-LD תקין | 0.3 |
| אינטגרציית YouTube | אופציונלית | 0.5 |
| בדיקות | על 5+ מוצרים | 0.3 |
| תיעוד | הוראות להוספת וידאו | 0.2 |
| תמיכה לאחר השקה | חודש אחד | — |
אם אתם זקוקים לאינטגרציית סרטוני Rutube בכרטיס מוצר, צרו קשר—נכין הצעה מותאמת אישית ונעריך לוחות זמנים. הניסיון של הצוות שלנו: 6+ שנים, 35+ פרויקטי אינטגרציית וידאו, מפתחי Bitrix מוסמכים.

