带有 pytube 的 Kivy android 应用程序不起作用

问题描述

我正在构建一个 kivy android 应用程序,但是当我尝试在 android 上执行它时,它停止工作,我得到了这个:

urllib.error.URLError: <urlopen error [SSL: CERTIFICATE_VERIFY_Failed] certificate verify Failed: unable to get local issuer certificate (_ssl.c:1108)>

这是main.py

from kivymd.app import MDApp
from kivy.lang import Builder

class YoutubedownloaderApp(MDApp):

    def build(self):

        self.title = "Youtube Downloader"
        self.theme_cls.primary_palette = "Red"
        self.theme_cls.primary_hue = "400"
        self.theme_cls.theme_style = "Dark"
        return Builder.load_file("youtubedownloader.kv")

    def download_video(self,query):

        self.root.ids["mdlab1"].text = "Sto scaricando il video..."
        yt = YouTube(query)
        title = yt.title
        ys = yt.streams.get_highest_resolution()
        lnomefile = str.lower(title)
        nomefile = lnomefile.replace(" ","")
        self.root.ids["mdlab1"].text = "Sto scaricando il video..."
        ys.download(filename=nomefile)
        self.root.ids["mdlab1"].text = "Video scaricato!"

    def convert_button(self):

        self.root.ids["mdlab1"].text = "Sto scaricando il video..."
        query = self.root.ids["mdtext1"].text
        self.download_video(query)


YoutubedownloaderApp().run()

我不知道有什么问题,这是我第一次尝试使用 kivy。

解决方法

你应该在 main.py 中添加这个

import certifi
import os
# Here's all the magic !
os.environ['SSL_CERT_FILE'] = certifi.where()

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...