57 lines
2.5 KiB
Markdown
57 lines
2.5 KiB
Markdown
---
|
|
title: "Replacing music player backend with yt-dlp"
|
|
tags: []
|
|
author: claude
|
|
count: 2
|
|
exporter: 3.1.0
|
|
date: 2026-07-16T17-20-34+0000
|
|
url: https://claude.ai/chat/8bb5e420-7ad2-4048-be3f-95894713aff6
|
|
---
|
|
|
|
# Replacing music player backend with yt-dlp
|
|
|
|
## Table of Contents
|
|
|
|
- [1: lets just gut the seek function and focus on what works. we also need…](#chat-1)
|
|
- [2: alright awesome, lets remove the start from current position also, i w…](#chat-2)
|
|
|
|
## chat-1
|
|
|
|
> lets just gut the seek function and focus on what works. we also need to address the robot falling over if i try to walk from standstill, but only the first time i do it. If i jitter the walk forward and back buttons for about 3 seconds to get over the initial walk issues, it can start walking without falling over. how do we fix this
|
|
|
|
Both very solvable. Let's do the walk fix first since it's the more important one — confirmed via NAOqi docs: `ALMotionProxy::moveInit()` is the standard fix for exactly this. It's a one-time blocking call that initializes the walk engine and settles the robot into the right pose _before_ the first real move command, which is exactly what your button-jittering was accidentally doing by brute force. It's missing from the script entirely.
|
|
|
|
Now let's gut `seek()` entirely per your request — but keep the position tracking it shares with `pause()`, since that's still needed for resume-from-position to work:
|
|
|
|
Right, orphaned body left over. Let's clean that up:
|
|
|
|
Now remove the comma/period key bindings that called `seek()`:
|
|
|
|
Now compile-check and confirm nothing else references `seek`:
|
|
|
|
Clean. Let's ship it:
|
|
|
|
___
|
|
###### [top](#table-of-contents)
|
|
## chat-2
|
|
|
|
> alright awesome, lets remove the start from current position also, i want to get the lines of code down, what can be done without compromising on the stability and functionality to simplify our code
|
|
|
|
Now let's do the full pass. First, the concrete simplification you asked for — remove position tracking, revert pause/resume to restart-from-beginning:
|
|
|
|
Now `pause()` becomes a plain stop/restart toggle — no position math, no `playFileFromPosition`:
|
|
|
|
Now let's cut the repetitive `try/except Exception as e: print(...)` boilerplate scattered through `NaoTeleop` — same safety, less code, via one small helper:
|
|
|
|
Now let's add the `_safe` helper and apply it across these repeated sites:
|
|
|
|
Now the `moveInit` startup call:
|
|
|
|
Now the shutdown block — this is where it pays off most:
|
|
|
|
Let's check the movement block and the `T` key's `stopMove()` call too:
|
|
|
|
___
|
|
###### [top](#table-of-contents)
|
|
|