Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

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

Open
TishSerg opened this issue Dec 15, 2021 · 29 comments
Open

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

TishSerg opened this issue Dec 15, 2021 · 29 comments

Comments

@TishSerg
Copy link

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

image

@TishSerg TishSerg changed the title TypeError: Illegam invocation TypeError: Illegal invocation Dec 15, 2021
@sodapng
Copy link
Owner

sodapng commented Dec 15, 2021

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

@TishSerg
Copy link
Author

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

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

@zsdedan
Copy link

zsdedan commented Dec 15, 2021

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

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

@sodapng
Copy link
Owner

sodapng commented Dec 15, 2021

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

@hadach
Copy link

hadach commented Dec 15, 2021

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

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

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

@TishSerg TishSerg changed the title TypeError: Illegal invocation Всякие разные ошибки Dec 15, 2021
@DmitriyPekar
Copy link

тоже bad request

@sodapng
Copy link
Owner

sodapng commented Dec 15, 2021

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

@TishSerg
Copy link
Author

no worries i am gonna solve problem ASAP

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

@sodapng
Copy link
Owner

sodapng commented Dec 15, 2021

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

@Reetroo0
Copy link

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

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

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

@Sz3rs
Copy link

Sz3rs commented Dec 17, 2021

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

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

@sodapng
Copy link
Owner

sodapng commented Dec 17, 2021

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

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

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

@mbs0ft mbs0ft mentioned this issue Dec 18, 2021
@sodapng
Copy link
Owner

sodapng commented Dec 27, 2021

Нашел решение. Развернут сервер и отправлять 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')
})

@ArtemNA
Copy link

ArtemNA commented Dec 28, 2021

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

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

@hadach
Copy link

hadach commented Dec 28, 2021

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

@sodapng
Copy link
Owner

sodapng commented Dec 28, 2021

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

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

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

@Protey
Copy link

Protey commented Dec 29, 2021

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

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

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

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

@ArtemNA
Copy link

ArtemNA commented Dec 29, 2021

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

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

@Ponf
Copy link

Ponf commented Dec 30, 2021

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

@AdventurerRussia
Copy link

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

@Protey
Copy link

Protey commented Jan 12, 2022

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

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

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

@DmitriyPekar
Copy link

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

@luckydevil13
Copy link

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

@ilyhalight
Copy link

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

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

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

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

@Protey
Copy link

Protey commented Jan 23, 2022

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

устанавливаешь 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" надо?

@ilyhalight
Copy link

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

устанавливаешь 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.

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

@d2m22
Copy link

d2m22 commented Aug 21, 2022

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

@sodapng
Copy link
Owner

sodapng commented Aug 22, 2022

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

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

@d2m22
Copy link

d2m22 commented Sep 7, 2022

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

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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests