2 / 1 / 1
Регистрация: 20.08.2022
Сообщений: 50

Как переделать скрипт с ютуба на рутуб

20.08.2022, 18:28. Показов 2017. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем привет.
Есть скрипт, который запускает видео на ютубе в указанное время. Т.е. если указать время запуска например в 12.00, а человек зашёл на сайт в 12.10 и запустит видео, то он начнёт смотреть видео с 10 минуты.
Вообщим, скрипт нормально работает с ютубом, но нужно, чтобы он также работал с рутубом, кто знает как это сделать, буду очень благодарен...
HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Воспроизведение видео на сайте по расписанию</title>
</head>
<body>
    <div id="player"></div>
    <div>
        <button type="button" id="start">start</button>
        <button type="button" id="stopp">stop</button>
    </div>
    <script type="text/javascript"></script>
    <script>
            var start_time = '12:54';
            var end_time = '23:52';
            start_time = start_time.split(':');
            end_time = end_time.split(':');
 
            var tag = document.createElement('script');
            tag.src = "https://www.youtube.com/iframe_api";
            var firstScriptTag = document.getElementsByTagName('script')[0];
            firstScriptTag.parentNode.insertBefore(tag, firstScriptTag);
 
            var player;
            function onYouTubeIframeAPIReady() {
                player = new YT.Player('player', {
                    height: '315',
                    width: '560',
                    videoId: 'yXlBZ0JNpVM',
                    events: {
                        'onReady': onPlayerReady,
                        'onStateChange': onPlayerStateChange
                    }
                });
            }
            
            function onPlayerReady(event) {
                    start.onclick = function() {
                        event.target.playVideo();
                    };
            }
 
            var jump = false;
            function onPlayerStateChange(event) {
                if (event.data == YT.PlayerState.PLAYING && !jump) {
                    player.seekTo(getSeconds());
                    jump = true;
                }
            }
            function stopVideo() {
                player.stopVideo();
            }
            stopp.onclick = function() {
                stopVideo();
            };
 
            var d = new Date();
            var h = d.getHours();
            var m = d.getMinutes();
            function getSeconds() {
                if (h > end_time[0] || h == end_time[0] && m > end_time[1]) return 0;
                if (h >= start_time[0]) {
                    var time_now = d;
                    var time_start = new Date(d.getFullYear(), d.getMonth(), d.getDate(), start_time[0], start_time[1]);
                    var time_end = new Date(d.getFullYear(), d.getMonth(), d.getDate(), end_time[0], end_time[1]);
                    return ((time_end - time_start) - (time_end - time_now)) / 1000;
                }
                return 0;
            }
 
    </script>
</body>
</html>
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
20.08.2022, 18:28
Ответы с готовыми решениями:

Скрипт вставки видео с ютуба
Добрый вечер понадобился скрипт вставки видео с ютуба а не навоков не знаний нет в этом деле проршу помощи за ранее блогодарен

Создаю скрипт для скачивания аудио дорожки из видео с Ютуба
Мальчики, привет. Нужна помощь:help: :есть код на Python, который должен скачивать аудио дорожку из видео с Ютуба. На сколько я поняла,...

Как переделать js скрипт на php?
Здравствуйте. Есть вот такой js скрипт https://jsfiddle.net/j7nquh3t/4/ . &lt;input type=&quot;text&quot; class=&quot;start&quot;...

1
 Аватар для evikza
968 / 530 / 244
Регистрация: 20.05.2015
Сообщений: 776
21.08.2022, 19:05
stat007, здравствуйте. Заставить работать данный скрипт для другой платформы не представляет возможности.

Но, можно написать обертку для плеера Rutube, всё управление плеером — запуск, пауза, остановка осуществляется при помощи интерфейса postMessage. По этому принципу и работает Youtube Iframe API. Но, для Rutube Вы вряд ли что-то найдете. От слова совсем.

Набросал оберточку, схожую с Youtube, включающая Ваши нужды:

Исполняемый файл, который создает элемент и следит за состояние плеера:

rt.js
JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
const Rutube = function () {
  const EMBEDED_API_URI = '//rutube.ru/play/embed/';
  const PREFFIX_PLAYER_ID = 'rt-';
 
  this.Player = function (selector, config) {
    if (!selector) {
      throw new Error('The Player element must be specified.');
    }
 
    this.selector = selector;
    this.config = config;
 
    return this.renderOnPage();
  };
 
  this.renderOnPage = function () {
    const element = document.createElement('iframe');
 
    for (let property in (options = {
      id: PREFFIX_PLAYER_ID + this.selector,
      width: this.config.width || 720,
      height: this.config.height || 405,
      src: EMBEDED_API_URI + this.config.videoId,
      frameBorder: 0,
      allow: 'autoplay',
    })) {
      element[property] = options[property];
    }
 
    document.getElementById(this.selector).appendChild(element);
  };
 
  this.checkPlayerState = function (event) {
    if (!this.config.events) return;
 
    const { onStateChange } = this.config.events;
 
    if (onStateChange) {
      return onStateChange(event);
    }
  };
 
  for (let [iterator, type] of Object.entries({
    play: 'play',
    pause: 'pause',
    stop: 'stop',
    seekTo: 'setCurrentTime',
  })) {
    this[iterator] = function (data = {}) {
      document
        .getElementById(PREFFIX_PLAYER_ID + this.selector)
        .contentWindow.postMessage(
          JSON.stringify({
            type: 'player:' + type,
            data: data,
          }),
          '*'
        );
    };
  }
 
  window.addEventListener(
    'message',
    function (event) {
      const receivedMessage = JSON.parse(event.data);
 
      switch (receivedMessage.type) {
        case 'player:changeState':
          this.checkPlayerState(receivedMessage.data.state);
 
          break;
      }
    }.bind(this),
    0
  );
};


Вызов плеера схож с тем, что в Вашем примере:

JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
const rt = new Rutube();
 
let jumpToSeek = false;
 
rt.Player('player', {
  width: 560,
  height: 315,
  videoId: '6e5e06ad0f3104ae47fb0f69d2198855',
  events: {
    onStateChange: onPlayerStateChange,
  },
});
 
function onPlayerStateChange(event) {
  if (event === 'playing' && !jumpToSeek) {
    rt.seekTo({ time: 34 });
 
    jumpToSeek = true;
  }
}
Доступные методы для работы с плеером:

play()
Начать проигрывание видео
pause()
Поставить видео на паузу
stop()
Закончить цикл проигрывания
seekTo()
Переход к определенной секунде видео

А что касается Вашего варианта расчет времени в диапазоне дат — у меня вообще ничего не работало из Вашего примера. Но, я и не вдавался в подробности.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
21.08.2022, 19:05
Помогаю со студенческими работами здесь

Подскажите как переделать скрипт
Всем привет ! Подскажите как переделать этот скрипт ,чтобы к примеру после запуска файла &quot;ZaxarGameBrowser.exe&quot; стартовал звук...

Как переделать ajax скрипт?
Здравствуйте, помогите с ajax скриптом, у меня есть скрипт на js &lt;script type=&quot;text/javascript&quot;...

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

Как переделать скрипт для массива
Пример: есть 2 строки (по 3 поля в каждой): &lt;tr&gt;&lt;input type=&quot;number&quot; id=&quot;val1&quot; value=&quot;0&quot; /&gt; + &lt;input type=&quot;number&quot;...

Как переделать скрипт под мобильные устройства?
Всем привет, я пытаюсь сделать что то типо арканоида, но у меня не получается реализовать управление с помощью touch. Как решить данную...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru