如何从特定的YouTube频道获取视频URL列表

问题描述 投票:-1回答:2

我想使用Python从特定YouTube频道获取视频URL列表。

首先,我编写了以下代码。

import os
import time
import requests
import pandas as pd

API_KEY = os.environ['API_KEY']
CHANNEL_ID = 'your_searching_channel_id'

base_url = 'https://www.googleapis.com/youtube/v3'
url = base_url + '/search?key=%s&channelId=%s&part=snippet,id&order=date&maxResults=50'
infos = []

但是我不知道下一步。

我阅读了You​​Tube API帮助,但是我不明白如何构建程序。

python youtube-api youtube-data-api
2个回答
0
投票

提供的解决方案假定提供给driver.get()的链接是Youtube播放列表。自行修改。

import time
from selenium import webdriver
from selenium.webdriver.common.keys import Keys

driver = webdriver.Chrome("pathToChromeDriver")
driver.get('https://www.youtube.com/watch?v=WN-IW6wOdnI&list=PLs4hTtftqnlBOsOiQ2U1fddASTO9SlRbY')

def collectLinks():
    elements = []
    elems = driver.find_elements_by_xpath("//a[@href]")
    print("Collecting links...")
    for elem in elems:
        elements.append(str(elem.get_attribute("href")))

    for i in elements:
        print(i)

collectLinks()
driver.quit()

其中“ pathToChromeDriver”替换为您的Chrome驱动程序路径。

其中'https://www.youtube.com/watch?v=WN-IW6wOdnI&list=PLs4hTtftqnlBOsOiQ2U1fddASTO9SlRbY'替换为您要查找所有URL链接的播放列表。


0
投票

逻辑->

导入必要的库。

import time
from selenium import webdriver
from selenium.webdriver.common.keys import Keys

使用硒。我要安装Chrome驱动程序。请确保您的chromedriver在运行脚本的目录中。

driver = webdriver.Chrome()

提供YouTube频道的网址。

url = input("Enter Youtube Channel URL : ")

转到视频部分。

driver.get(url+"/videos")

向下滚动到页面末尾。因为页面在向下滚动时加载,所以我们需要注意这一点。

ht=driver.execute_script("return document.documentElement.scrollHeight;")
while True:
    prev_ht=driver.execute_script("return document.documentElement.scrollHeight;")
    driver.execute_script("window.scrollTo(0, document.documentElement.scrollHeight);")
    time.sleep(2)
    ht=driver.execute_script("return document.documentElement.scrollHeight;")
    if prev_ht==ht:
        break

查找所有视频的链接。

links=driver.find_elements_by_xpath('//*[@id="video-title"]')
for link in links:
    print(link.get_attribute("href"))

就是这样。

Cons-需要网络驱动程序。比直接从Youtube API获取结果要慢。

© www.soinside.com 2019 - 2024. All rights reserved.