Python, пакет yt-dlp, скачивание видео с ютуба, не качает
Как можно направить скачивание через ipv6.
Пробовал такое:
ydl_opts = {
'format': 'mp4',
'outtmpl': f'{self.download_path}/%(id)s.mp4',
'source_address': '1a05:5f00:4:1::9fd0',
'force_ipv6': True
}
--------------------------------------------
Перестал работать, не качает видео, обновил до последний версии, ошибку не пишет, просто не качает, не могу понять в чем проблема.
Если в консоле пишу команду yt-dlp "тут ссылка на видео", качает без проблем, и видео есть в корне скрипта, я сначала думал, что бан по ip, но нет, раз качает на прямую по ссылке, тут дело в скрипте, скрипт почему-то не качает.
Может тут, что не так.
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': '1a05:5f00:7:1::9fd1',
'force_ipv6': True
}
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")