Вы можете использовать официальный API, с помощью которого легко искать видео по указанному c каналу:
![enable API screen](https://i.stack.imgur.com/nMieAm.png)
- Go для учетных данных / создания учетных данных / ключа API
![API key screen](https://i.stack.imgur.com/fTQw9.png)
Используйте ключ API в приведенном ниже скрипте. Этот скрипт извлекает элементы видео из канала с идентификатором UCoq5eKuZhG7Dm-63YFUYQog
, использует разбиение на страницы , чтобы получить их все, и повторно создает ссылку из videoId:
import googleapiclient.discovery
from urllib.parse import parse_qs, urlparse
import re
#extract channel id from url
url = 'https://www.youtube.com/channel/UCoq5eKuZhG7Dm-63YFUYQog/videos'
channel_id = re.search('channel\/(.*)\/videos', url).group(1)
print(f'get all videos links from {channel_id}')
youtube = googleapiclient.discovery.build("youtube", "v3", developerKey = "YOUR_KEY")
request = youtube.search().list(
channelId = channel_id,
part = "id",
maxResults = 50,
type = "video"
)
response = request.execute()
videos_items = []
while request is not None:
response = request.execute()
videos_items += response["items"]
request = youtube.search().list_next(request, response)
print(f"total: {len(videos_items)}")
print([
f'https://www.youtube.com/watch?v={t["id"]["videoId"]}'
for t in videos_items
])
Вывод:
get all videos links from UCoq5eKuZhG7Dm-63YFUYQog
total: 80
[
'https://www.youtube.com/watch?v=uORsR14S7gw',
'https://www.youtube.com/watch?v=cARHPeZIUs4',
............
'https://www.youtube.com/watch?v=CF2JO5a2EHE',
'https://www.youtube.com/watch?v=1yLesOxlHs0'
]
Если вам нужна дополнительная информация о видео, используйте part = "snippet"
, см. это