Skip to content

AttributeError: 'str' object has no attribute 'write' en android #22108

Description

@python-ab

I am trying to download audio and videos using kivy. the code works fine in windows and ubuntu but it generates an error in android.

this is the code:

import youtube_dl

import kivy
kivy.require('1.11.0')

from kivy.app import App
from kivy.uix.boxlayout import BoxLayout

from kivy.config import Config
Config.set('graphics', 'width', 400)
Config.set('graphics', 'height', 200)

class Contenedor_01(BoxLayout):

def descargarA(self):
    ydl_opts = {
        'format': 'bestaudio/best',
        'postprocessors': [{
            'key': 'FFmpegExtractAudio',
            'preferredcodec': 'mp3',
            'preferredquality': '192',
            }],
    }

    with youtube_dl.YoutubeDL(ydl_opts) as ydl:
        ydl.download(['https://www.youtube.com/watch?v=2j3x0VYnehg'])

class MainApp(App):
def build(self):
return Contenedor_01()

if name == 'main':
MainApp().run()

me genera este error:
I/python (20086): Android kivy bootstrap done. name is main
I/python (20086): AND: Ran string
I/python (20086): Run user program, change dir and execute entrypoint
I/python (20086): [WARNING] [Config ] Older configuration version detected (0 instead of 21)
I/python (20086): [WARNING] [Config ] Upgrading configuration in progress.
I/python (20086): [INFO ] [Logger ] Record log in /data/user/0/org.test.downloadmeapp/files/app/.kivy/logs/kivy_19-08-15_0.txt
I/python (20086): [INFO ] [Kivy ] v1.11.0
I/python (20086): [INFO ] [Kivy ] Installed at "/data/user/0/org.test.downloadmeapp/files/app/_python_bundle/site-packages/kivy/init.pyc"
I/python (20086): [INFO ] [Python ] v3.7.1 (default, Aug 15 2019, 15:27:31)
I/python (20086): [Clang 6.0.2 (https://android.googlesource.com/toolchain/clang 183abd29fc496f55
I/python (20086): [INFO ] [Python ] Interpreter at "android_python"
I/python (20086): [INFO ] [Factory ] 184 symbols loaded
I/python (20086): [INFO ] [Image ] Providers: img_tex, img_dds, img_sdl2, img_gif (img_pil, img_ffpyplayer ignored)
I/python (20086): [INFO ] [Window ] Provider: sdl2
I/python (20086): [INFO ] [GL ] Using the "OpenGL ES 2" graphics system
I/python (20086): [INFO ] [GL ] Backend used
I/python (20086): [INFO ] [GL ] OpenGL version <b'OpenGL ES 3.1 V@140.0 (GIT@Iec24cdb30f)'>
I/python (20086): [INFO ] [GL ] OpenGL vendor <b'Qualcomm'>
I/python (20086): [INFO ] [GL ] OpenGL renderer <b'Adreno (TM) 405'>
I/python (20086): [INFO ] [GL ] OpenGL parsed version: 3, 1
I/python (20086): [INFO ] [GL ] Texture max size <16384>
I/python (20086): [INFO ] [GL ] Texture max units <16>
I/python (20086): [INFO ] [Window ] auto add sdl2 input provider
I/python (20086): [INFO ] [Window ] virtual keyboard not allowed, single mode, not docked
I/python (20086): [INFO ] [Text ] Provider: sdl2
I/python (20086): [WARNING] [Base ] Unknown provider
I/python (20086): [INFO ] [Base ] Start application main loop
I/python (20086): [INFO ] [GL ] NPOT texture support is available
I/python (20086): [INFO ] [Base ] Leaving application in progress...
I/python (20086): Traceback (most recent call last):
I/python (20086): File "/home/abrahan/Escritorio/prueba/.buildozer/android/app/main.py", line 38, in
I/python (20086): File "/home/abrahan/Escritorio/prueba/.buildozer/android/platform/build/build/python-installs/DownLoadMeApp/kivy/app.py", line 855, in run
I/python (20086): File "/home/abrahan/Escritorio/prueba/.buildozer/android/platform/build/build/python-installs/DownLoadMeApp/kivy/base.py", line 504, in runTouchApp
I/python (20086): File "/home/abrahan/Escritorio/prueba/.buildozer/android/platform/build/build/python-installs/DownLoadMeApp/kivy/core/window/window_sdl2.py", line 746, in mainloop
I/python (20086): File "/home/abrahan/Escritorio/prueba/.buildozer/android/platform/build/build/python-installs/DownLoadMeApp/kivy/core/window/window_sdl2.py", line 478, in _mainloop
I/python (20086): File "/home/abrahan/Escritorio/prueba/.buildozer/android/platform/build/build/python-installs/DownLoadMeApp/kivy/base.py", line 342, in idle
I/python (20086): File "/home/abrahan/Escritorio/prueba/.buildozer/android/platform/build/build/python-installs/DownLoadMeApp/kivy/base.py", line 327, in dispatch_input
I/python (20086): File "/home/abrahan/Escritorio/prueba/.buildozer/android/platform/build/build/python-installs/DownLoadMeApp/kivy/base.py", line 233, in post_dispatch_input
I/python (20086): File "kivy/_event.pyx", line 707, in kivy._event.EventDispatcher.dispatch
I/python (20086): File "/home/abrahan/Escritorio/prueba/.buildozer/android/platform/build/build/python-installs/DownLoadMeApp/kivy/core/window/init.py", line 1378, in on_motion
I/python (20086): File "kivy/_event.pyx", line 707, in kivy._event.EventDispatcher.dispatch
I/python (20086): File "/home/abrahan/Escritorio/prueba/.buildozer/android/platform/build/build/python-installs/DownLoadMeApp/kivy/core/window/init.py", line 1394, in on_touch_down
I/python (20086): File "kivy/_event.pyx", line 707, in kivy._event.EventDispatcher.dispatch
I/python (20086): File "/home/abrahan/Escritorio/prueba/.buildozer/android/platform/build/build/python-installs/DownLoadMeApp/kivy/uix/widget.py", line 549, in on_touch_down
I/python (20086): File "kivy/_event.pyx", line 707, in kivy._event.EventDispatcher.dispatch
I/python (20086): File "/home/abrahan/Escritorio/prueba/.buildozer/android/platform/build/build/python-installs/DownLoadMeApp/kivy/uix/behaviors/button.py", line 151, in on_touch_down
I/python (20086): File "kivy/_event.pyx", line 703, in kivy._event.EventDispatcher.dispatch
I/python (20086): File "kivy/_event.pyx", line 1214, in kivy._event.EventObservers.dispatch
I/python (20086): File "kivy/_event.pyx", line 1098, in kivy._event.EventObservers._dispatch
I/python (20086): File "/home/abrahan/Escritorio/prueba/.buildozer/android/platform/build/build/python-installs/DownLoadMeApp/kivy/lang/builder.py", line 64, in custom_callback
I/python (20086): File "/data/data/org.test.downloadmeapp/files/app/main.kv", line 4, in
I/python (20086): on_press: root.descargarA()
I/python (20086): File "/home/abrahan/Escritorio/prueba/.buildozer/android/app/main.py", line 29, in descargarA
I/python (20086): File "/home/abrahan/Escritorio/prueba/.buildozer/android/platform/build/build/python-installs/DownLoadMeApp/youtube_dl/YoutubeDL.py", line 2010, in download
I/python (20086): File "/home/abrahan/Escritorio/prueba/.buildozer/android/platform/build/build/python-installs/DownLoadMeApp/youtube_dl/YoutubeDL.py", line 796, in extract_info
I/python (20086): File "/home/abrahan/Escritorio/prueba/.buildozer/android/platform/build/build/python-installs/DownLoadMeApp/youtube_dl/extractor/common.py", line 530, in extract
I/python (20086): File "/home/abrahan/Escritorio/prueba/.buildozer/android/platform/build/build/python-installs/DownLoadMeApp/youtube_dl/extractor/youtube.py", line 1668, in _real_extract
I/python (20086): File "/home/abrahan/Escritorio/prueba/.buildozer/android/platform/build/build/python-installs/DownLoadMeApp/youtube_dl/extractor/common.py", line 794, in _download_webpage
I/python (20086): File "/home/abrahan/Escritorio/prueba/.buildozer/android/platform/build/build/python-installs/DownLoadMeApp/youtube_dl/extractor/youtube.py", line 274, in _download_webpage_handle
I/python (20086): File "/home/abrahan/Escritorio/prueba/.buildozer/android/platform/build/build/python-installs/DownLoadMeApp/youtube_dl/extractor/common.py", line 660, in _download_webpage_handle
I/python (20086): File "/home/abrahan/Escritorio/prueba/.buildozer/android/platform/build/build/python-installs/DownLoadMeApp/youtube_dl/extractor/common.py", line 602, in _request_webpage
I/python (20086): File "/home/abrahan/Escritorio/prueba/.buildozer/android/platform/build/build/python-installs/DownLoadMeApp/youtube_dl/extractor/common.py", line 922, in report_download_webpage
I/python (20086): File "/home/abrahan/Escritorio/prueba/.buildozer/android/platform/build/build/python-installs/DownLoadMeApp/youtube_dl/extractor/common.py", line 914, in to_screen
I/python (20086): File "/home/abrahan/Escritorio/prueba/.buildozer/android/platform/build/build/python-installs/DownLoadMeApp/youtube_dl/YoutubeDL.py", line 502, in to_screen
I/python (20086): File "/home/abrahan/Escritorio/prueba/.buildozer/android/platform/build/build/python-installs/DownLoadMeApp/youtube_dl/YoutubeDL.py", line 516, in to_stdout
I/python (20086): File "/home/abrahan/Escritorio/prueba/.buildozer/android/platform/build/build/python-installs/DownLoadMeApp/youtube_dl/YoutubeDL.py", line 505, in _write_string
I/python (20086): File "/home/abrahan/Escritorio/prueba/.buildozer/android/platform/build/build/python-installs/DownLoadMeApp/youtube_dl/utils.py", line 3084, in write_string
I/python (20086): AttributeError: 'str' object has no attribute 'write'
I/python (20086): Python for android ended.

I can't solve this problem

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions