python - 使用 Python 发出下载视频的请求

标签 python http-post

我有以下形式的链接:

http://youtubeinmp3.com/fetch/?video=LINK_TO_YOUTUBE_VIDEO_HERE

如果您将这种类型的链接放入 <a>网页上的标签,单击它们将在链接末尾下载 YouTube 视频的 MP3。来源是here .

我想通过发出发布请求(或类似的东西)从命令行模拟这个过程,但我不知道如何在Python中做到这一点!请问我可以得到任何建议吗?或者这比我想象的更困难吗?

最佳答案

Mark Ma如上所述,您可以使用 urllib2 来完成此任务,而无需离开标准库。我喜欢用Requests ,所以我做了这个:

import os
import requests

dump_directory = os.path.join(os.getcwd(), 'mp3')
os.makedirs(dump_directory, exist_ok=True)


def dump_mp3_for(resource):
    payload = {
        'api': 'advanced',
        'format': 'JSON',
        'video': resource
    }
    initial_request = requests.get('http://youtubeinmp3.com/fetch/', params=payload)
    if initial_request.status_code == 200:  # good to go
        download_mp3_at(initial_request)


def download_mp3_at(initial_request):
    j = initial_request.json()
    filename = '{0}.mp3'.format(j['title'])
    r = requests.get(j['link'], stream=True)
    with open(os.path.join(dump_directory, filename), 'wb') as f:
        print('Dumping "{0}"...'.format(filename))
        for chunk in r.iter_content(chunk_size=1024):
            if chunk:
                f.write(chunk)
                f.flush()

这样一来,迭代 YouTube 视频链接列表并将它们一一传递到 dump_mp3_for() 就变得很简单了。

for video in ['http://www.youtube.com/watch?v=i62Zjga8JOM']:
    dump_mp3_for(video)

关于python - 使用 Python 发出下载视频的请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30560203/

相关文章:

asp.net-mvc-3 - 发回 View 后值不会改变?

c# - 在 C# 中使用 HTTP POST 发送文件

jquery - 使用 $.post 检测返回的错误

python - 使用 Python 剥离文本文件

python - 是否有用于编辑 msword 文档文件的 python 库?

python - 尝试删除具有 Unicode 名称的文件夹

javascript - 使用nodejs 将文档索引到elasticsearch

c# - 在 HTTP 处理程序中接收 HTTP POST?

python - 在 while 循环中更改张量的单个值

python - 我的脚本无法单击某个网格