【问题标题】:python- download mp3 from youtubepython- 从 youtube 下载 mp3
【发布时间】:2016-05-14 19:54:03
【问题描述】:

我正在尝试使用 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”键并按下“转换视频”按钮。你能告诉我怎么做吗?

【问题讨论】:

  • 我不知道您是否知道这一点,但大多数(如果不是所有)youtube 上的视频都以纯音频格式提供。
  • 好的,但无论如何,我想使用我已经拥有的列表。
  • 这就是我的意思:当您下载视频时,例如使用youtube-dl,您可以告诉它您想要纯音频格式的视频。无需通过第三方网站。
  • 我只是想把它作为一个练习来做
  • 但是我必须发送“ENTER”键并按下“转换视频”按钮...Selenium 可以完成这项工作

标签: python youtube beautifulsoup


【解决方案1】:

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

以 youtube-mp3 为例,我看到它是一个 XMLHTTPRequest,一个 get 请求。

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-02-25
    • 1970-01-01
    • 2015-08-03
    • 2023-02-22
    • 2017-12-07
    • 2019-04-03
    • 2020-08-03
    相关资源
    最近更新 更多