gpt4 book ai didi

python - python-从youtube下载mp3

转载 作者:行者123 更新时间:2023-12-03 06:19:57 30 4
gpt4 key购买 nike

我正在尝试使用Python在youtube上下载的视频列表中下载mp3:
到目前为止,我有:

from bs4 import BeautifulSoup
import urllib2

url='https://www.youtube.com/playlist?list=PLYjSYQBFeM-zQeZFpWeZ_4tnhc3GQWNj8'

page=urllib2.urlopen(url)
soup = BeautifulSoup(page.read())
todos=soup.findAll("a",{'class':'yt-uix-sessionlink'})
for todo in todos:
if len(str(todo.get('href'))) > 1 and 'index' in todo.get('href'):
dir='https://www.youtube.com'
texto=str(todo.get('href'))
final=texto.find("&list")
subtexto=dir+texto[0: final]
a.append(subtexto)

lista=set(a)

所以我有视频列表。我去了网址将其转换为mp3
url2='http://www.youtube-mp3.org/'

并发现我必须将每个粘贴到“form”标签中:
page2=urllib2.urlopen(url2)
soup2 = BeautifulSoup(page2.read())

formu=soup2.find('div', attrs={'id':'form'}).find('input')

如果我打印格式,我会得到:

<input autocomplete="off" id="youtube-url" onclick="sAll(this)" type="text" value="http://www.youtube.com/watch?v=KMU0tzLwhbE"/>


我认为这些库可能会有所帮助:
import requests
import lxml.html as lh

所以我尝试了:
form_data={'input':lista[1]}
response = requests.post(url2, data=form_data)

但是然后我必须发送“ENTER”键,然后按“转换视频”按钮。你能给我一个提示怎么做吗?

最佳答案

单击网页上按钮的绝对最佳方法是使用Web驱动程序,例如Selenium。
但是,您可以通过调用与单击该按钮时调用的调用相同的调用来模拟“提交”按钮的单击。

在youtube-mp3的情况下,我看到它是一个XMLHTTPRequest(一个获取请求)。

http://www.youtube-mp3.org/a/pushItem/?item=https%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3DuO59tfQ2TbA&r=1476878990281&s=33319

我不了解两个参数。 r和s。但是我发现,如果我们不更改它们,那么查询就可以了。我们可以将item值更改为所需的任何值,这将为我们返回videoid。

r = requests.get("http://www.youtube-mp3.org/a/pushItem/?item=https%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3DuO59tfQ2TbA&r=1476878990281&s=33319")
print r.text

这将为您提供一个视频ID。在下一个通话中使用此视频ID

http://www.youtube-mp3.org/a/itemInfo/?video_id=uO59tfQ2TbA&ac=www&t=grp&r=1476878991758&s=156841

这将返回一个json。使用此JSON获取文件。

http://www.youtube-mp3.org/get?video_id=srjPtc7ykiw&ts_create=1476878991&r=MTAuMTA3LjQ3LjI%3D&h2=c9ceec7efc6c61251ce671b5d63cd4c0&s=3278

关于python - python-从youtube下载mp3,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37231188/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com