Добрый день!
При скачивании файлов с помощью `pytube`, как вы правильно заметили, наличие недопустимых символов в названии файла, таких как `/`, может привести к ошибке "путь не найден". Чтобы избежать этой проблемы, можно воспользоваться заменой недопустимых символов на допустимые или удалением их.
Вот пример того, как можно обработать название файла перед его сохранением:
```python
from pytube import YouTube
import os
import re
def sanitize_filename(filename):
# Удалим недопустимые символы
return re.sub(r'[<>:"/\\|?*\']', '_', filename)
def download_audio(video_url):
try:
# Создает объект YouTube
yt = YouTube(video_url)
# Получаем аудиодорожку
audio_stream = yt.streams.filter(only_audio=True).first()
# Санируем имя файла
filename = sanitize_filename(yt.title)
# Скачиваем аудиофайл
audio_stream.download(filename=filename + ".mp3")
print(f"Файл '{filename}.mp3' успешно скачан!")
except Exception as e:
print(f"Произошла ошибка: {e}")
# Пример использования
video_url = "https://www.youtube.com/watch?v=ваш_идентификатор_видео"
download_audio(video_url)
```
### Объяснение кода:
1. **Функция `sanitize_filename(filename)`**: Заменяет все недопустимые символы на нижнее подчеркивание (`_`). Вы можете изменить символ замены по вашему усмотрению.
2. **Функция `download_audio(video_url)`**:
- Создает объект `YouTube` по заданной ссылке.
- Получает первую доступную аудиодорожку.
- Вызывает функцию `sanitize_filename` для обработки названия видео.
- Скачивает аудиофайл с санированным именем в формате `.mp3`.
### Дополнительные рекомендации:
- Вы можете расширить `sanitize_filename`, если хотите обрабатывать другие символы или добавлять дополнительные правила.
- Убедитесь, что у вас установлена последняя версия `pytube`, так как в старых версиях могут быть проблемы с доступом к потокам.
Теперь, при запуске данной программы, вы сможете скачать файлы с допустимыми именами, избегая ошибок из-за недопустимых символов.