Воспроизведение звука с youtube трансляций
Собственно. Нужно реализовать воспроизведение звука с трансляции на youtube в фоновом режиме. То есть без видео, в самом приложении(на PyQt5, если что). Эдакое радио. Куда копать, в какие библиотеки?
Ответы (1 шт):
Автор решения: S. Nick
→ Ссылка
Как вариант. В верхнем левом углу есть типа кнопки включить/выключить.
Нажимаем и слушаем. То что надо вставить в ваш интерфейс - отмечено # +++.
import sys
import random
from PyQt5.Qt import *
from PyQt5.QtWebEngineWidgets import QWebEngineView, QWebEngineSettings
def create_pixmap(size):
pixmap = QPixmap(size)
pixmap.fill(QColor(*random.sample(range(255), 3)))
return pixmap
class VariantAnimation(QVariantAnimation):
def updateCurrentValue(self, value):
pass
# +++ vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv
class MyEngineView(QWebEngineView):
def __init__(self, parent=None, ):
super(MyEngineView, self).__init__(parent)
self.resize(26, 26)
self.settings().setAttribute(QWebEngineSettings.FullScreenSupportEnabled, True)
self.page().fullScreenRequested.connect(lambda request: request.accept())
baseUrl = "local"
htmlString = """
<iframe width="10" height="10" src="https://www.youtube.com/embed/L0MK7qz13bU?rel=0&showinfo=0" frameborder="0" allowfullscreen></iframe>
"""
self.setHtml(htmlString, QUrl(baseUrl))
# +++ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
class MainWindow(QMainWindow):
def __init__(self):
super().__init__()
scene = QGraphicsScene(self)
view = QGraphicsView(scene)
parent_item = scene.addPixmap(create_pixmap(QSize(150, 150)))
parent_item.setTransformOriginPoint(parent_item.boundingRect().center())
parent_item.setFlag(QGraphicsItem.ItemIsMovable, True)
child_item = QGraphicsPixmapItem(create_pixmap(QSize(70, 70)))
child_item.setParentItem(parent_item)
child_item.setTransformOriginPoint(child_item.boundingRect().center())
child_item.setOffset(40, 40)
self.animation = VariantAnimation(
startValue=0, endValue=360, duration=2000, loopCount=-1
)
self.animation.valueChanged.connect(parent_item.setRotation)
self.animation.start()
self.setCentralWidget(view)
self.browser = MyEngineView(self) # +++
self.browser.move(1, 1) # +++
if __name__ == "__main__":
app = QApplication(sys.argv)
window = MainWindow()
window.setWindowTitle('Воспроизведение звука с youtube трансляций')
window.resize(640, 480)
window.show()
app.exec_()
