Python, yt-dlp и ipv6, как правильно подставлять и использовать pv6?

Сделал бота, который маленькие видео с ютуба качает.
Пытаюсь привязать к нему ipv6.
Использую пакет для скачивания видео yt-dlp.

На сколько я понял, у данного пакета есть функции привязки ipv6, но я пока не понял как, знающие может тут есть и подскажут.

from yt_dlp import YoutubeDL

async def download(self, limit=1):
        self.conn.row_factory = sqlite3.Row
        cursor = self.conn.cursor()
        query = "SELECT * FROM videos WHERE is_downloaded=0 ORDER BY created_at ASC"
        if limit is not None:
            query += " LIMIT {}".format(limit)
        cursor.execute(query)
        rows = cursor.fetchall()
        if len(rows) == 0:
            return
        self.log("DOWNLOAD STARTED")
        try:
            ydl_opts = {
                'format': 'mp4',
                'outtmpl': f'{self.download_path}/%(id)s.mp4',
                'source_address': '1a02:5f00:5:1::9fd0' # подставляем ipv6
            }
            ydl = YoutubeDL(ydl_opts)
            for i in rows:
              try:
                res = ydl.download('https://youtube.com/watch?v=' + i['video_id'], download=True)
                print("По ссылке видео доступно.")
              except YoutubeDL.DownloadError:
                print("По ссылке видео удалено.")

                self.conn.execute("UPDATE videos SET is_downloaded=1, filename=? WHERE is_downloaded=0 AND id=?", (f'{self.download_path}/{i["video_id"]}.mp4', i['id'],))
                self.conn.commit()
                time.sleep(4)
        except (NetworkError, sqlite3.Error, ConnectionError) as e:
            self.log(str(e), is_exception=True)
        self.log("DOWNLOAD FINISHED")


Добавил я в оптионсы: 'source_address': '1a02:5f00:5:1::9fd0'
Но результат но пока не качает видео, видимо не так сделал.
  • Вопрос задан
  • 412 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы