voice-over-translation icon indicating copy to clipboard operation
voice-over-translation copied to clipboard

Всякие разные ошибки

Open TishSerg opened this issue 3 years ago • 29 comments

Упс, что-то пошло не так 😅

image

TishSerg avatar Dec 15 '21 10:12 TishSerg

  1. Какой браузер используешь?
  2. Расширение "violentmonkey" или "tampermonkey"?
  3. Можешь отправить логи?

sodapng avatar Dec 15 '21 13:12 sodapng

  1. Какой браузер используешь?
  2. Расширение "violentmonkey" или "tampermonkey"?
  3. Можешь отправить логи?
  1. Opera 82.0.4227 (используется Opera VPN)
  2. Tampermonkey v4.13.6138
  3. Как бы их получить?

Теперь наблюдаю другую ошибку: image

TishSerg avatar Dec 15 '21 14:12 TishSerg

У меня тоже вылезает ошибка.

Ubuntu 20.04 Firefox 95.0 (64 бита) Tempermonkey 4.13.6136 Снимок экрана от 2021-12-15 19-13-09

zsdedan avatar Dec 15 '21 16:12 zsdedan

Яндекс изменил заголовок запроса. Надо разобраться как генерируется «Vtrans-Signature».

sodapng avatar Dec 15 '21 16:12 sodapng

У меня тоже вылезает ошибка.

Ubuntu 20.04 Firefox 95.0 (64 бита) Tempermonkey 4.13.6136 Снимок экрана от 2021-12-15 19-13-09

Таже самая ошибка. Opera 84 Violentmonkey

hadach avatar Dec 15 '21 16:12 hadach

тоже bad request

DmitriyPekar avatar Dec 15 '21 17:12 DmitriyPekar

its not working anymore because of new changes on the HTTP header no worries i am gonna solve problem ASAP

sodapng avatar Dec 15 '21 17:12 sodapng

no worries i am gonna solve problem ASAP

А ты русскоязычный или англояъычный? На каком языке тебе лучше общаться?

TishSerg avatar Dec 15 '21 18:12 TishSerg

Можно на русском.

sodapng avatar Dec 15 '21 18:12 sodapng

У меня тоже вылезает ошибка. Ubuntu 20.04 Firefox 95.0 (64 бита) Tempermonkey 4.13.6136 Снимок экрана от 2021-12-15 19-13-09

Таже самая ошибка. Opera 84 Violentmonkey

Ты смог решить проблему?

Reetroo0 avatar Dec 15 '21 19:12 Reetroo0

Яндекс изменил заголовок запроса. Надо разобраться как генерируется «Vtrans-Signature».

До исходников браузера дойти не смог, но судя по байткоду, сигнатура создается через алгоритм hmacWithSHA256 https://docs.aws.amazon.com/general/latest/gr/sigv4-signed-request-examples.html

Sz3rs avatar Dec 17 '21 12:12 Sz3rs

Яндекс изменил заголовок запроса. Надо разобраться как генерируется «Vtrans-Signature».

До исходников браузера дойти не смог, но судя по байткоду, сигнатура создается через алгоритм hmacWithSHA256 https://docs.aws.amazon.com/general/latest/gr/sigv4-signed-request-examples.html

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

sodapng avatar Dec 17 '21 13:12 sodapng

Нашел решение. Развернут сервер и отправлять POST запрос на него вместо yandex. Скрипт необходимо доработать, так как он не обрабатывает ошибки.

// browser.js
import puppeteer from 'puppeteer-core' 

const args = [
 '--no-sandbox',
 '--disable-setuid-sandbox',
 '--disable-infobars',
 '--single-process',
 '--no-zygote',
 '--no-first-run',
 '--ignore-certificate-errors',
 '--ignore-certificate-errors-skip-list',
 // '--disable-dev-shm-usage',
 '--disable-accelerated-2d-canvas',
 '--disable-gpu',
 '--hide-scrollbars',
 '--disable-notifications',
 '--disable-background-timer-throttling',
 '--disable-backgrounding-occluded-windows',
 '--disable-breakpad',
 '--disable-component-extensions-with-background-pages',
 '--disable-extensions',
 '--disable-features=TranslateUI,BlinkGenPropertyTrees',
 '--disable-ipc-flooding-protection',
 '--disable-renderer-backgrounding',
 '--enable-features=NetworkService,NetworkServiceInProcess',
 '--force-color-profile=srgb',
 '--metrics-recording-only',
 '--mute-audio',
 '--remote-debugging-port=12703',
]

const options = {
 headless: false,
 ignoreHTTPSErrors: true,
 executablePath: `C:\\Users\\<Пользователь>\\AppData\\Local\\Yandex\\YandexBrowser\\Application\\browser.exe`,
 userDataDir: `C:\\Users\\<Пользователь>\\AppData\\Local\\Yandex\\YandexBrowser\\User Data`,
 args,
}

;(async () => {
 const browser = await puppeteer.launch(options)
 const wsEndpoint = await browser.wsEndpoint()
 console.log(wsEndpoint)
})()

// server.js
import puppeteer from 'puppeteer-core'
import express from 'express'
import axios from 'axios'
import timeout from 'connect-timeout'

const app = express()
app.use(express.json())
app.use(express.urlencoded({ extended: true }))
app.use(timeout('60s'))

app.get('/', (req, res) => {
  res.send('voice-over-translation')
})

app.post('/video', async (req, res) => {
  const json = await axios.get('http://127.0.0.1:12703/json/version')
  const wsEndpoint = json.data.webSocketDebuggerUrl
  const browser = await puppeteer.connect({ browserWSEndpoint: wsEndpoint })
  const page = await browser.newPage()

  await page.goto(`https://www.youtube.com/watch?v=${req.body.video_id}`)
  await page.waitForSelector('#y-banner-button')
  await page.click('#y-banner-button')

  page.on('request', async (request) => {
    if (request.url().includes('.mp3')) {
      res.send({
        url: request.url(),
      })
    }
  })

  await page.waitForTimeout(500)
  await page.close()
})

app.listen(3000, () => {
  console.log('Server is up and running')
})

sodapng avatar Dec 27 '21 19:12 sodapng

Нашел решение. Развернут сервер и отправлять POST запрос на него вместо yandex. Скрипт необходимо доработать, так как он не обрабатывает ошибки.

У меня почему-то на сервер отправляется пустой body. что-то еще, кроме ссылки, в самом скрипте подправить нужно?

ArtemNA avatar Dec 28 '21 16:12 ArtemNA

А можно более подробно что куда прописывать?

hadach avatar Dec 28 '21 16:12 hadach

Нашел решение. Развернут сервер и отправлять POST запрос на него вместо yandex. Скрипт необходимо доработать, так как он не обрабатывает ошибки.

У меня почему-то на сервер отправляется пустой body. что-то еще, кроме ссылки, в самом скрипте подправить нужно?

data: JSON.stringify({
  "video_id": videoId
})
"Content-Type": "application/json"

sodapng avatar Dec 28 '21 17:12 sodapng

Нашел решение. Развернут сервер и отправлять POST запрос на него вместо yandex. Скрипт необходимо доработать, так как он не обрабатывает ошибки.

У меня почему-то на сервер отправляется пустой body. что-то еще, кроме ссылки, в самом скрипте подправить нужно?

data: JSON.stringify({
  "video_id": videoId
})
"Content-Type": "application/json"

что добавить, где добавить и самое главное КАК добавить? Напишите пожалуйста по подробнее, чтобы простым смертным было понятно и могли использовать этот чудо способ!

Protey avatar Dec 29 '21 06:12 Protey

что добавить, где добавить и самое главное КАК добавить? Напишите пожалуйста по подробнее, чтобы простым смертным было понятно и могли использовать этот чудо способ!

устанавливаешь node.js и яндекс браузер. создаешь 2 файла с содержимым, что автор написал выше. поднимаешь node сервер и делашь как делал раньше(просто в своем браузере кликаешь на значок перевода)

ArtemNA avatar Dec 29 '21 10:12 ArtemNA

Почему тогда нельзя просто посмотреть видео с переводом в яндекс браузере? 🤣 Тем более там есть заглушение оригинальной озвучки, синхронизация с громкостью плеера, да и переводить можно не только youtube, но и другие сервисы

Ponf avatar Dec 30 '21 08:12 Ponf

@Ponf может потому что не хотят им пользоваться из за вшитой всякой фигни в него?

AdventurerRussia avatar Dec 31 '21 20:12 AdventurerRussia

что добавить, где добавить и самое главное КАК добавить? Напишите пожалуйста по подробнее, чтобы простым смертным было понятно и могли использовать этот чудо способ!

устанавливаешь node.js и яндекс браузер. создаешь 2 файла с содержимым, что автор написал выше. поднимаешь node сервер и делашь как делал раньше(просто в своем браузере кликаешь на значок перевода)

конечно, это же все так просто, особенно для тех кто не знает что такое код программирования))) ДА на гитхаб заходят люди которые не разбираются в программировании!) Ну, с установкой node.js и браузером еще можно разобраться.... Ладно с созданием 2х файлов browser.js и server.js то же можно разобраться (но это не точно). Но как именно поднять сервер на node, куда эти 2 файла browser.js и server.js положить чтобы все работало?

Protey avatar Jan 12 '22 19:01 Protey

так что в итоге, скрипт окончательно заглох?

DmitriyPekar avatar Jan 19 '22 04:01 DmitriyPekar

спасибо, через прокси работает!

luckydevil13 avatar Jan 19 '22 07:01 luckydevil13

что добавить, где добавить и самое главное КАК добавить? Напишите пожалуйста по подробнее, чтобы простым смертным было понятно и могли использовать этот чудо способ!

устанавливаешь node.js и яндекс браузер. создаешь 2 файла с содержимым, что автор написал выше. поднимаешь node сервер и делашь как делал раньше(просто в своем браузере кликаешь на значок перевода)

конечно, это же все так просто, особенно для тех кто не знает что такое код программирования))) ДА на гитхаб заходят люди которые не разбираются в программировании!) Ну, с установкой node.js и браузером еще можно разобраться.... Ладно с созданием 2х файлов browser.js и server.js то же можно разобраться (но это не точно). Но как именно поднять сервер на node, куда эти 2 файла browser.js и server.js положить чтобы все работало?

Если для тебя вопрос ещё актуален, то можешь глянуть мой форк этого репозитория. Да, возможно не идеально работает, но хотя бы работает =)

ilyhalight avatar Jan 22 '22 23:01 ilyhalight

что добавить, где добавить и самое главное КАК добавить? Напишите пожалуйста по подробнее, чтобы простым смертным было понятно и могли использовать этот чудо способ!

устанавливаешь node.js и яндекс браузер. создаешь 2 файла с содержимым, что автор написал выше. поднимаешь node сервер и делашь как делал раньше(просто в своем браузере кликаешь на значок перевода)

конечно, это же все так просто, особенно для тех кто не знает что такое код программирования))) ДА на гитхаб заходят люди которые не разбираются в программировании!) Ну, с установкой node.js и браузером еще можно разобраться.... Ладно с созданием 2х файлов browser.js и server.js то же можно разобраться (но это не точно). Но как именно поднять сервер на node, куда эти 2 файла browser.js и server.js положить чтобы все работало?

Если для тебя вопрос ещё актуален, то можешь глянуть мой форк этого репозитория. Да, возможно не идеально работает, но хотя бы работает =)

вопрос еще актуален, я думаю, не только для меня) что-то не нашел где у вас там оставить комментарий, по этому напишу тут. Мне не понятны некоторые пункты действий. 3. Заполните свои пути в config.json - какие именно пути? где заполнить? где этот файл config.json лежит и должен лежать? 5. Находясь в папке "web-server" пропишите: npm i - эту папку "web-server" надо откуда то скачать или самому создать, где создать? 7. Запустите веб-сервер с помощью npm run start - запускать через командную строку или повершел, находится в папке "web-server" надо?

Protey avatar Jan 23 '22 11:01 Protey

что добавить, где добавить и самое главное КАК добавить? Напишите пожалуйста по подробнее, чтобы простым смертным было понятно и могли использовать этот чудо способ!

устанавливаешь node.js и яндекс браузер. создаешь 2 файла с содержимым, что автор написал выше. поднимаешь node сервер и делашь как делал раньше(просто в своем браузере кликаешь на значок перевода)

конечно, это же все так просто, особенно для тех кто не знает что такое код программирования))) ДА на гитхаб заходят люди которые не разбираются в программировании!) Ну, с установкой node.js и браузером еще можно разобраться.... Ладно с созданием 2х файлов browser.js и server.js то же можно разобраться (но это не точно). Но как именно поднять сервер на node, куда эти 2 файла browser.js и server.js положить чтобы все работало?

Если для тебя вопрос ещё актуален, то можешь глянуть мой форк этого репозитория. Да, возможно не идеально работает, но хотя бы работает =)

вопрос еще актуален, я думаю, не только для меня) что-то не нашел где у вас там оставить комментарий, по этому напишу тут. Мне не понятны некоторые пункты действий. 3. Заполните свои пути в config.json - какие именно пути? где заполнить? где этот файл config.json лежит и должен лежать? 5. Находясь в папке "web-server" пропишите: npm i - эту папку "web-server" надо откуда то скачать или самому создать, где создать? 7. Запустите веб-сервер с помощью npm run start - запускать через командную строку или повершел, находится в папке "web-server" надо?

  1. Добавил вкладку с комментариями и проблемами
  2. Нужно заполнить пути к месту, куда установлен YandexBrowser (скорее всего вам нужно будет просто поменять имя пользователя (ilyat) на своё имя пользователя, его можно найти по пути C:\Users (Диск C ---> Пользователи). Конфиг лежит по пути "voice-over-translation/web-server/config/default.json" (вы должны были скачать эту папку из моего репозитория)
  3. Да, нужно скачать эту папку из моего репозитория (Вы можете скачать весь репозиторий, нажав на зелёную кнопку "Code", а после на кнопку "Download ZIP").
  4. Можно запускать как через CMD, так и через PowerShell. Да, нужно находится в папке web-server.

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

ilyhalight avatar Jan 23 '22 12:01 ilyhalight

Нажимаешь кнопку перевести, пишет "Перевод займёт около минуты", но ничего не обновляется, можно прождать 1-3-5-10 мин, пока не нажмешь снова на кнопку "Перевод займёт около минуты" тогда начинается перевод. Никак не оповещает о том, что уже выполнен перевод. Расширение "tampermonkey", Firefox 96.0.3 (64 бита), Windows 11.

d2m22 avatar Aug 21 '22 13:08 d2m22

Нажимаешь кнопку перевести, пишет "Перевод займёт около минуты", но ничего не обновляется, можно прождать 1-3-5-10 мин, пока не нажмешь снова на кнопку "Перевод займёт около минуты" тогда начинается перевод. Никак не оповещает о том, что уже выполнен перевод. Расширение "tampermonkey", Firefox 96.0.3 (64 бита), Windows 11.

Рабочая версия https://github.com/ilyhalight/voice-over-translation

sodapng avatar Aug 22 '22 11:08 sodapng

Рабочая версия https://github.com/ilyhalight/voice-over-translation

С этой версией всё работает. Спасибо.

d2m22 avatar Sep 07 '22 13:09 d2m22