Add first PoC

This commit is contained in:
sqozz 2018-06-07 21:56:19 +02:00
commit 8f8e1a318f
2 changed files with 55 additions and 0 deletions

2
requirements.txt Normal file
View file

@ -0,0 +1,2 @@
python-mpd2==1.0.0
python-mpv==0.3.8

53
video-sync.py Executable file
View file

@ -0,0 +1,53 @@
import mpv
import pdb
import sys
import time
from mpd import MPDClient
def my_log(loglevel, component, message):
print('[{}] {}: {}'.format(loglevel, component, message))
player = mpv.MPV(log_handler=my_log, ytdl=True, input_default_bindings=True, input_vo_keyboard=True)
# Property access, these can be changed at runtime
@player.property_observer('time-pos')
def time_observer(_name, value):
# Here, _value is either None if nothing is playing or a float containing
# fractional seconds since the beginning of the file.
#print('Now playing at {:.2f}s'.format(value))
pass
#player.fullscreen = True
player.mute = True
player.loop_playlist = 'inf'
# Option access, in general these require the core to reinitialize
player['vo'] = 'opengl'
@player.on_key_press('q')
def my_q_binding():
sys.exit()
client = MPDClient()
player.play('https://www.youtube.com/watch?v=RChFX5I2dkc')
while True:
client.connect("10.42.0.3", 6600)
mpd_time = int(client.status().get("time").split(":")[0])
video_time = player.time_pos
try:
video_time = int(video_time)
except TypeError:
pass
else:
#pdb.set_trace()
delta = abs(mpd_time - video_time)
print("mpd: {}, video: {}, delta: {}".format(mpd_time, video_time, delta))
if delta > 1:
print("delta > 1s, syncing")
player.time_pos = mpd_time
client.disconnect()
time.sleep(1)
del player