Hola, lo primero enhorabuena y seguid adelante.
Bien me gustaría hacer unas apreciaciones para que no se os complique la cosa a futuro si pensáis seguir con el proyecto.
1º Como os a dicho el pichon yo cambiaria a yt_dlp ya que Youtube-dl esta muerto y podéis encontraros que mañana os deja de funcionar.
No entiendo muy bien por que usáis dicha librería solo para el titulo y algún dato más creo que es insignificante y podríais no depender de ella. No obstante, si os aconsejo para acelerar dicha carga que si lo que pretendéis obtener cuando usáis los extractores de youtube -dl son datos principales uséis la obtención a través de json que es muchísimo más rápido y en equipos con conexiones inferiores os lo agradecerán mucho os dejo la línea de opción para dicha tarea:
opciones = {'ignoreerrors': True, 'extract_flat': 'in_playlist', 'dump_single_json': True, 'quiet': True}
2º Hace mucho que deje de usar accessible_output2 por que hay cosas que os fallarán a futuro con dicha librería y es largo de explicar ahora. TWBlue si queréis investigar contempla varios errores y soluciones para que llegado el caso la aplicación no quede colgada. Es por archivos temporales que dicha librería deja en el directorio temp del usuario.
Algún usuario ya os a dicho que estaría bien la comunicación directa con el lector os dejo una sugerencia de librería muy fácil y ideal para dicha tarea y que agilizaría muchísimo la verbalización de los mensajes, dicha librería se llama cytolk y podéis ver su repositorio aquí:
https://github.com/pauliyobo/cytolk
3º Sobre la interface.
Si vais a seguir añadiendo cosas os aconsejo que hagáis un ejercicio. Independientemente del lector que uséis sacad una pantalla virtual.
En una inteface tienen que estar ordenados los widgets conforme tabs vamos a dar y tener una coherencia en cuanto a acciones. Si borro no puede dejarme el foco en más opciones.
En este apartado tengo que ser sincero y sin critica, tiene mucho merito, pero por haber pasado por aquí prefiero que me maldigáis a que mañana os maldigáis por no saber por donde tirar y tener que emplear mucho más tiempo en rehacer todo desde cero.
El tema interface me lo plantearía desde cero y sin influencias de wxglade. Dejar dicho generador para más adelante.
Si seguís con dicha interface sintiéndolo mucho os auguro a que vais a tener el doble de trabajo más adelante por tenerla que volver a escribir.
De verdad en este apartado haría algo simple con los conocimientos que se posean a intentar hacer algo complejo que mañana voy a tener que reescribir.
Os dejo una pagina sobre funciones internas de wxpython con las cuales podréis dejar de depender de librerías de Python por ejemplo webbrowser y usar una de wxpython nativa con lo que aligeráis la carga.
https://wxpython.org/Phoenix/docs/html/wx.functions.html
Por ultimo la librería que usáis para extraer el chat os permite también twitch y Facebook y redir o algo así se llama.
La implementación es exactamente igual mirarlo y podréis dar muchas satisfacciones a usuarios.
Veo que hay conceptos que no se llegan a entender, pero estudiar muy bien las librerías que usáis ya que os quitarán muchos dolores de cabeza.
De momento ya os digo por ejemplo que no contempláis el conflicto de playsound con las voces sapi5 y a sido lo primero que se me a presentado directamente en el código.
Bien eso impide totalmente ya que hace que se desencadene un error que falle todo y al meter una url correcta me lance el mensaje que no es correcta.
Si uno mira en consola detecta rápidamente el error o puede obtener pistas:
Rebuilding cache of generated files for COM support...
Checking C866CA3A-32F7-11D2-9602-00C04F8EE628x0x5x4
Could not add module (IID('{C866CA3A-32F7-11D2-9602-00C04F8EE628}'), 0, 5, 4) - <class 'ImportError'>: cannot import name 'Dispatch' from partially initialized module 'win32com.client' (most likely due to a circular import) (C:\Python38-64\lib\site-packages\win32com\client__init__.py)
Done.
Error 263 for command:
open sounds/abrirchat.mp3
El dispositivo especificado no está abierto o MCI no lo reconoce.
Error 263 for command:
close sounds/abrirchat.mp3
El dispositivo especificado no está abierto o MCI no lo reconoce.
Failed to close the file: sounds/abrirchat.mp3
>>>
En este caso lo de más arriba en vez de usar librerías externas intentad usar lo que ya tenéis. Wxpython tiene unas funciones para reproducir archivos wav y en caso de dar algún error os lo especificara mejor que este por ejemplo que viene derivado de pywin32.
Bien parece que todo es malo y que solo critico y que solo pongo peros.
Pero con toda sinceridad os digo que lo hago para que a futuro os ahorréis dolores de cabeza, muchos hemos pasado por aquí.
Bien y a contrario de lo que pueda parecer de verdad os felicito y animo a seguir adelante con el proyecto.
Gracias por vuestro tiempo que es algo que no se suele valorar.