下载与搜索查询相关的视频的YouTube元数据

metatube的Python项目详细描述


下载与搜索查询相关的视频的YouTube元数据

这是一个Python脚本,可以下载与搜索查询相关的YouTube视频的元数据(包括评论和喜欢的内容)。使用Youtube Data API v3。元数据保存在PostgreSQL数据库中。在

Metatube的设计方式是,一旦您的每日配额用完,它就会暂停检索(在撰写本文时,默认值是每天10000个请求),然后等待配额重新填充。如果中断,metatube将在重新启动时首先填补下载历史记录中的空白,然后继续下载“into the future”。一旦在当前时间的10分钟内被捕获,metatube就会退出。在

如果您使用metatube进行科学研究,请在您的出版物中引用它:
Fink,C.(2020):metatube:Python脚本下载YouTube元数据doi:10.5281/zenodo.3773302。在

依赖性

这个脚本是用python3编写的,它依赖于Python模块dateparserpsycopg2PyYaml和{a6}。在

要在基于Debian的系统上安装依赖项,请运行:

apt-get update -y &&
apt-get install -y python3-dev python3-pip python3-virtualenv

(有一个archlinuxaur包将所有依赖项拉入,请参阅下面的内容)

安装

  • 使用pip或类似的:
^{pr2}$
  • 或:手动:

    • 克隆此存储库
    git clone https://gitlab.com/helics-lab/metatube.git
    
    • 切换到克隆目录
    • 使用Pythonsetuptools安装包:
    cd metatube
    python3 ./setup.py install
    
  • 或:(仅限Arch Linux)来自AUR:

# e.g. using yay
yay python-metatube

配置

根据您的操作系统,将示例配置文件metatube.yml.example复制到适当的位置:

  • 在Linux系统上:
    • 系统范围的配置:/etc/metatube.yml
    • 每用户配置:
      • ~/.config/metatube.yml
      • ${XDG_CONFIG_HOME}/metatube.yml
  • 在MacOS系统上:
    • 每用户配置:
      • ${XDG_CONFIG_HOME}/metatube.yml
  • 在Microsoft Windows系统上:
    • 每用户配置: %APPDATA%\metatube.yml

调整配置:

  • 配置一个指向现有数据库的PostgreSQL连接字符串(connection_string
  • 将API access key配置到Youtube数据API v3(youtube_api_key)上。在
  • 定义搜索词(search_terms

所有这些配置选项都可以作为命令行参数提供给metatube(参见Usage),也可以作为configdict直接提供给YoutubeVideoMetadataDownloader的构造函数。命令行选项(请参见metatube --help)或configdict都重写配置文件。在

用法

命令行可执行文件

metatube \
    --postgresql-connection-string "dbname=metatube"\
    --youtube-api-key "abcdefghijklmn"\"how to build a tallbike"

Python

导入metatube模块。{cd14>{cda}可选地实例化一个}。然后运行实例的download()方法。在

importmetatube# config from config filedownloader=YoutubeVideoDownloader()downloader.download()# config from config file, # overriding `search_terms`downloader=YoutubeVideoDownloader({"search_terms":"Critical Mass Vladivostok"})downloader.download()# entire config from dictionarydownloader=YoutubeVideoDownloader({"youtube_api_key":"opqrstuvwxyz","connection_string":"dbname=metatube host=server1 user=bicyclelover123","search_terms":"dashcam bicycle commute albuquerque"})downloader.download()

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java是用来加速集合中对象查找的哈希代码吗?   java在Servlet中执行后将JSP请求重定向到自身   JavaHTTPStatus415使用Ajax将Json数据发布到SpringMVC4也使用了SpringSecurity   java为什么谷歌应用引擎MySQL JDBC URL不与数据库连接?   多线程Java:强制停止ExecutorService线程   java使用For循环向组合框添加值   java子Git“内存不足”和“超出GC开销限制”   使用正则表达式运行计算器程序时出现java NumberFormatException   java MockMvc测试POST请求返回错误:实际调用有不同的参数:   java自动在虚拟机内移动鼠标,与真实的鼠标无关   当类位于类路径上时,java Surefire抛出SurefireReflectionException   java GroupLayout错误:找不到错误的行   SpringHibernateJava。lang.NoSuchFieldError:实例   从一个java密钥库生成多个个人证书的身份验证   java 1.6.013中的eclipse@WebServlet注释支持   java Spring Webservicetemplate连接重置错误   spring如何修复SqlRowSet上的“无效游标SQL异常”。Java中的Next()   java Websphere版本迁移