Лучше сделать через очередь. В неё пихаешь событие о необходимости скачивания. Воркер на том же питоне скачивает , юзая классы из тулы́. Отдаёт в очередь сообщение, что скачал. Твой бот ловит это сообщение и отдаёт куда надо...
Микросервисы!
Очередь - на RabbitMQ, например
1. Софт кажется GNU GPL. То есть нужно открывать исходники всего программного обеспечения придется, если встраивать именно код. Я хочу встроить в существующий код бота. Поэтому код буду писать на Pascal. Youtube-dl хочу использовать как отдельную программу с вызовом на определенные события.
2. По поводу воркера. Да конечно без него никуда. Создам отделный поток с очередью заданий. Но вот уже этот поток (в Pascal коде) планирую, что будет делать запросы в эту программу.
3. УДобство еще в том, что youtube-dl скачивается и обновляется через официальных дистрибтютивы как вполне себе валидный пакет Linux