Почитав код, я не увидел там ключа, определяющего периодичность записи. Есть ли там такой ключ или возможно ли его туда добавить, хотя бы просто грубо внеся паузу в исполнение всего скрипта?
def do_activate ...
self.shell_player.connect('elapsed-changed', self.elapsed_changed)
Здесь плагин подписывается на сигнал об изменении позиции, что происходит каждую секунду. Соответственно вызов elapsed_changed тоже будет происходить каждую секунду. Простой sleep здесь скорее всего не поможет, т.к. плеер должен дергать функции по сигналам неблокирующим образом.
Я бы попробовал переделать elapsed_changed таким образом:
def elapsed_changed(self, player, entry, data=None):
try:
pb_time = self.shell_player.get_playing_time()[1]
if pb_time % 5 == 0:
self.playback_time = self.shell_player.get_playing_time()[1]
except:
pass
в этом случае позиция фиксируется каждую 5-ю секунду