scdlbot


Namescdlbot JSON
Version 0.14.2 PyPI version JSON
download
home_pagehttps://github.com/gpchelkin/scdlbot
SummaryTelegram Bot for downloading MP3 rips of tracks/sets from SoundCloud, Bandcamp, YouTube with tags and artwork
upload_time2022-12-19 08:04:23
maintainer
docs_urlNone
authorGeorge Pchelkin
requires_python>=3.9,<4.0
licenseMIT
keywords scdlbot telegram bot soundcloud bandcamp youtube mixcloud yandex audio music download
VCS
bugtrack_url
requirements args bandcamp-downloader beautifulsoup4 boltons brotli brotlicffi certifi cffi chardet charset-normalizer clint cryptography dacite decorator demjson3 docopt ffmpeg-python future idna lxml mock mutagen pathvalidate patool plumbum prometheus-client pycparser pycryptodomex pysocks python-dateutil python-telegram-bot python-telegram-handler pywin32 requests requests scdl six soundcloud-v2 soupsieve termcolor tornado unicode-slugify unidecode urllib3 websockets yt-dlp
Travis-CI No Travis.
coveralls test coverage No coveralls.
            Music Downloader Telegram Bot aka scdlbot
=========================================


.. image:: https://img.shields.io/badge/telegram-@scdlbot-blue.svg
        :target: https://t.me/scdlbot
        :alt: Telegram Bot

.. image:: https://img.shields.io/github/license/gpchelkin/scdlbot.svg
        :target: https://github.com/gpchelkin/scdlbot/blob/master/LICENSE
        :alt: MIT License

.. image:: https://readthedocs.org/projects/scdlbot/badge/?version=latest
        :target: https://scdlbot.readthedocs.io/
        :alt: Documentation Status

.. image:: https://img.shields.io/pypi/v/scdlbot.svg
        :target: https://pypi.org/project/scdlbot
        :alt: PyPI Version

.. image:: https://github.com/gpchelkin/scdlbot/workflows/build/badge.svg?branch=master&event=push
        :target: https://github.com/gpchelkin/scdlbot/actions/workflows/build.yml
        :alt: GitHub Actions Build Status

.. image:: https://github.com/gpchelkin/scdlbot/actions/workflows/codeql-analysis.yml/badge.svg?branch=master&event=push
        :target: https://github.com/gpchelkin/scdlbot/actions/workflows/codeql-analysis.yml
        :alt: GitHub Actions CodeQL Status

.. image:: https://deepsource.io/gh/gpchelkin/scdlbot.svg/?label=active+issues&show_trend=true
        :target: https://deepsource.io/gh/gpchelkin/scdlbot/?ref=repository-badge
        :alt: DeepSource Active Issues

.. image:: https://deepsource.io/gh/gpchelkin/scdlbot.svg/?label=resolved+issues&show_trend=true
        :target: https://deepsource.io/gh/gpchelkin/scdlbot/?ref=repository-badge
        :alt: DeepSource Resolved Issues

.. image:: https://codeclimate.com/github/gpchelkin/scdlbot/badges/issue_count.svg
        :target: https://codeclimate.com/github/gpchelkin/scdlbot
        :alt: Code Climate Issue Count

.. image:: https://api.codacy.com/project/badge/Grade/7dfb6d8e7a094987b303e9283fc7368c
        :target: https://app.codacy.com/gh/gpchelkin/scdlbot
        :alt: Codacy Build Status

.. image:: https://codebeat.co/badges/57243b9d-2269-4f31-a35b-6aedd11626d2
        :target: https://codebeat.co/projects/github-com-gpchelkin-scdlbot-master
        :alt: Codebeat Quality

.. image:: https://www.codefactor.io/repository/github/gpchelkin/scdlbot/badge
        :target: https://www.codefactor.io/repository/github/gpchelkin/scdlbot
        :alt: CodeFactor

Telegram Bot for downloading MP3 rips of tracks/sets from
SoundCloud, Bandcamp, YouTube with tags and artwork.


* Free software: `MIT License <https://github.com/gpchelkin/scdlbot/blob/master/LICENSE>`__
* Documentation: https://scdlbot.readthedocs.io


.. contents:: :depth: 2


scdlbot Usage in Telegram
-------------------------

Send ``/start`` or ``/help`` command to bot
or refer directly to the `help message <scdlbot/texts/help.tg.md>`__.

Please report all bugs and issues and suggest your improvements
to `issues <https://github.com/gpchelkin/scdlbot/issues>`__.

Supported sites and mainly used packages
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

scdlbot is standing on the shoulders of giants:

-  `Telegram Bot API <https://core.telegram.org/bots/api>`__:
   `python-telegram-bot <https://github.com/python-telegram-bot/python-telegram-bot>`__
-  `SoundCloud <https://soundcloud.com>`__:
   `scdl <https://github.com/flyingrub/scdl>`__
-  `Bandcamp <https://bandcamp.com>`__:
   `bandcamp-dl <https://github.com/iheanyi/bandcamp-dl>`__
-  `YouTube <https://www.youtube.com/>`__, `Yandex.Music <https://music.yandex.com/>`__,
   `Mixcloud <https://www.mixcloud.com/>`__, and almost everything from this `list <https://yt-dl.org/supportedsites.html>`__:
   `youtube-dl <https://yt-dl.org>`__

Run your own scdlbot
--------------------

Installation & Configuration
^^^^^^^^^^^^^^^^^^^^^^^^^^^^

Requirements
""""""""""""

Those should be available in your ``PATH``:

-  `Python 3.9+ <https://www.python.org>`__
   (`pyenv <https://github.com/pyenv/pyenv>`__ and `poetry <https://python-poetry.org/>`__ are recommended)
-  `FFmpeg 4.0+ <https://ffmpeg.org/download.html>`__ if not running on Heroku
   (fresh builds for
   `Windows <https://www.gyan.dev/ffmpeg/builds/#release-builds>`__,
   `macOS <https://evermeet.cx/ffmpeg/>`__
   and `Linux <https://johnvansickle.com/ffmpeg/>`__ are recommended)
-  `Heroku CLI <https://cli.heroku.com>`__ is recommended if you want to deploy to Heroku

Install / Update stable from `PyPI <https://pypi.org/project/scdlbot>`__ (recommended)
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""

::

    pip3 install scdlbot --upgrade

...or get unstable from `Git source repository <https://github.com/gpchelkin/scdlbot>`__
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""

::

    git clone https://github.com/gpchelkin/scdlbot.git
    cd scdlbot
    pip3 install --requirement requirements.txt

    # Update:
    git pull
    pip3 install --requirement requirements.txt


Configure Bot
"""""""""""""

Download or copy configuration file sample and set up
config environment variables in it:

::

    # If you've installed from PyPI - download sample config somewhere:
    curl -o .env https://raw.githubusercontent.com/gpchelkin/scdlbot/master/.env.sample

    # If you've got Git source - just copy sample config:
    cp .env.sample .env

    # Use your favourite editor. Sample config is self-documented:
    nano .env

Telegram Bot Settings
"""""""""""""""""""""

Send the commands from respective filenames in ``telegram_settings`` dir to `@BotFather <https://t.me/BotFather>`__, choose your bot and copy corresponding values in order to use the bot conveniently.
Disable privacy mode if you want bot to read and check every message in group for links.
Otherwise, it would work only for commands.

Running Locally or at Dedicated Server
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

Using `Heroku Local <https://devcenter.heroku.com/articles/heroku-local#run-your-app-locally-using-the-heroku-local-command-line-tool>`__ (preferred)
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""

You will need `Heroku CLI <https://cli.heroku.com/>`__ installed.

::

    # If you've installed from PyPI - download Procfile first (otherwise already present in Git repository):
    curl -O https://raw.githubusercontent.com/gpchelkin/scdlbot/master/Procfile

    # For long polling mode (when USE_WEBHOOK=0):
    heroku local -e .env worker
    # For webhook mode (when USE_WEBHOOK=1):
    heroku local -e .env web

Using Python only
"""""""""""""""""

::

    export $(grep -v '^#' .env | xargs)
    python3 -m scdlbot
    # or in one line:
    env $(grep -v '^#' .env | xargs) python3 -m scdlbot

    # If you've installed package from PyPI into the system,
    # you can also replace 'python3 -m scdlbot' with only 'scdlbot'

Deploying to `Heroku <https://heroku.com/>`__
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

|Deploy|

Register on Heroku, press the button above and
configure variables for deploying.
When app is deployed you **must** set only one dyno working on
"Resources" tab in your app settings depending on `which way of getting
updates <https://core.telegram.org/bots/api#getting-updates>`__ you have
chosen and set in config variables: ``worker`` for polling or ``web``
for webhook.

Manually
""""""""

You can do the same as the button above but using `Heroku
CLI <https://cli.heroku.com/>`__, not as much of a fun. Assuming you are in
``scdlbot`` repository directory:

::

    heroku login
    # Create app with Python 3 buildpack and set it for upcoming builds:
    heroku create --buildpack heroku/python
    heroku buildpacks:set heroku/python
    # Add FFmpeg buildpack needed for youtube-dl & scdl:
    heroku buildpacks:add --index 1 https://github.com/jonathanong/heroku-buildpack-ffmpeg-latest.git --app scdlbot
    # Deploy app to Heroku:
    git push heroku master
    # Set config vars automatically from your local .env file
    heroku plugins:install heroku-config
    heroku config:push
    # Or set them manually:
    heroku config:set TG_BOT_TOKEN="<TG_BOT_TOKEN>" STORE_CHAT_ID="<STORE_CHAT_ID>" ...

If you use webhook, start web dyno and stop worker dyno:

::

    heroku ps:scale web=1 worker=0
    heroku ps:stop worker

If you use polling, start worker dyno and stop web dyno:

::

    heroku ps:scale worker=1 web=0
    heroku ps:stop web

Some useful commands:

::

    # Attach to logs:
    heroku logs -t
    # Test run ffprobe
    heroku run "ffprobe -version"

Deploying to `Dokku <https://github.com/dokku/dokku>`__
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

Use Dokku (your own Heroku) installed on your own server.
App is tested and fully ready for deployment with polling
(no webhook yet).
https://github.com/dokku/dokku-letsencrypt

::

    export DOKKU=<your_dokku_server>
    scp .env $DOKKU:~
    ssh $DOKKU
        export DOKKU=<your_dokku_server>
        dokku apps:create scdlbot
        dokku certs:generate scdlbot scdlbot.$DOKKU
        dokku config:set scdlbot $(cat .env | xargs)
        logout
    git remote add dokku dokku@$DOKKU:scdlbot
    git push dokku master
    ssh $DOKKU
        dokku ps:scale scdlbot worker=1 web=0
        dokku ps:restart scdlbot

.. |Deploy| image:: https://www.herokucdn.com/deploy/button.svg
    :target: https://heroku.com/deploy

            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/gpchelkin/scdlbot",
    "name": "scdlbot",
    "maintainer": "",
    "docs_url": null,
    "requires_python": ">=3.9,<4.0",
    "maintainer_email": "",
    "keywords": "scdlbot,telegram,bot,soundcloud,bandcamp,youtube,mixcloud,yandex,audio,music,download",
    "author": "George Pchelkin",
    "author_email": "george@pchelk.in",
    "download_url": "https://files.pythonhosted.org/packages/8a/39/0f1d72965e362c01db2cebfc55c0a7a5fe2625eb25082595232c22f3a987/scdlbot-0.14.2.tar.gz",
    "platform": null,
    "description": "Music Downloader Telegram Bot aka scdlbot\n=========================================\n\n\n.. image:: https://img.shields.io/badge/telegram-@scdlbot-blue.svg\n        :target: https://t.me/scdlbot\n        :alt: Telegram Bot\n\n.. image:: https://img.shields.io/github/license/gpchelkin/scdlbot.svg\n        :target: https://github.com/gpchelkin/scdlbot/blob/master/LICENSE\n        :alt: MIT License\n\n.. image:: https://readthedocs.org/projects/scdlbot/badge/?version=latest\n        :target: https://scdlbot.readthedocs.io/\n        :alt: Documentation Status\n\n.. image:: https://img.shields.io/pypi/v/scdlbot.svg\n        :target: https://pypi.org/project/scdlbot\n        :alt: PyPI Version\n\n.. image:: https://github.com/gpchelkin/scdlbot/workflows/build/badge.svg?branch=master&event=push\n        :target: https://github.com/gpchelkin/scdlbot/actions/workflows/build.yml\n        :alt: GitHub Actions Build Status\n\n.. image:: https://github.com/gpchelkin/scdlbot/actions/workflows/codeql-analysis.yml/badge.svg?branch=master&event=push\n        :target: https://github.com/gpchelkin/scdlbot/actions/workflows/codeql-analysis.yml\n        :alt: GitHub Actions CodeQL Status\n\n.. image:: https://deepsource.io/gh/gpchelkin/scdlbot.svg/?label=active+issues&show_trend=true\n        :target: https://deepsource.io/gh/gpchelkin/scdlbot/?ref=repository-badge\n        :alt: DeepSource Active Issues\n\n.. image:: https://deepsource.io/gh/gpchelkin/scdlbot.svg/?label=resolved+issues&show_trend=true\n        :target: https://deepsource.io/gh/gpchelkin/scdlbot/?ref=repository-badge\n        :alt: DeepSource Resolved Issues\n\n.. image:: https://codeclimate.com/github/gpchelkin/scdlbot/badges/issue_count.svg\n        :target: https://codeclimate.com/github/gpchelkin/scdlbot\n        :alt: Code Climate Issue Count\n\n.. image:: https://api.codacy.com/project/badge/Grade/7dfb6d8e7a094987b303e9283fc7368c\n        :target: https://app.codacy.com/gh/gpchelkin/scdlbot\n        :alt: Codacy Build Status\n\n.. image:: https://codebeat.co/badges/57243b9d-2269-4f31-a35b-6aedd11626d2\n        :target: https://codebeat.co/projects/github-com-gpchelkin-scdlbot-master\n        :alt: Codebeat Quality\n\n.. image:: https://www.codefactor.io/repository/github/gpchelkin/scdlbot/badge\n        :target: https://www.codefactor.io/repository/github/gpchelkin/scdlbot\n        :alt: CodeFactor\n\nTelegram Bot for downloading MP3 rips of tracks/sets from\nSoundCloud, Bandcamp, YouTube with tags and artwork.\n\n\n* Free software: `MIT License <https://github.com/gpchelkin/scdlbot/blob/master/LICENSE>`__\n* Documentation: https://scdlbot.readthedocs.io\n\n\n.. contents:: :depth: 2\n\n\nscdlbot Usage in Telegram\n-------------------------\n\nSend ``/start`` or ``/help`` command to bot\nor refer directly to the `help message <scdlbot/texts/help.tg.md>`__.\n\nPlease report all bugs and issues and suggest your improvements\nto `issues <https://github.com/gpchelkin/scdlbot/issues>`__.\n\nSupported sites and mainly used packages\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nscdlbot is standing on the shoulders of giants:\n\n-  `Telegram Bot API <https://core.telegram.org/bots/api>`__:\n   `python-telegram-bot <https://github.com/python-telegram-bot/python-telegram-bot>`__\n-  `SoundCloud <https://soundcloud.com>`__:\n   `scdl <https://github.com/flyingrub/scdl>`__\n-  `Bandcamp <https://bandcamp.com>`__:\n   `bandcamp-dl <https://github.com/iheanyi/bandcamp-dl>`__\n-  `YouTube <https://www.youtube.com/>`__, `Yandex.Music <https://music.yandex.com/>`__,\n   `Mixcloud <https://www.mixcloud.com/>`__, and almost everything from this `list <https://yt-dl.org/supportedsites.html>`__:\n   `youtube-dl <https://yt-dl.org>`__\n\nRun your own scdlbot\n--------------------\n\nInstallation & Configuration\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nRequirements\n\"\"\"\"\"\"\"\"\"\"\"\"\n\nThose should be available in your ``PATH``:\n\n-  `Python 3.9+ <https://www.python.org>`__\n   (`pyenv <https://github.com/pyenv/pyenv>`__ and `poetry <https://python-poetry.org/>`__ are recommended)\n-  `FFmpeg 4.0+ <https://ffmpeg.org/download.html>`__ if not running on Heroku\n   (fresh builds for\n   `Windows <https://www.gyan.dev/ffmpeg/builds/#release-builds>`__,\n   `macOS <https://evermeet.cx/ffmpeg/>`__\n   and `Linux <https://johnvansickle.com/ffmpeg/>`__ are recommended)\n-  `Heroku CLI <https://cli.heroku.com>`__ is recommended if you want to deploy to Heroku\n\nInstall / Update stable from `PyPI <https://pypi.org/project/scdlbot>`__ (recommended)\n\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\n\n::\n\n    pip3 install scdlbot --upgrade\n\n...or get unstable from `Git source repository <https://github.com/gpchelkin/scdlbot>`__\n\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\n\n::\n\n    git clone https://github.com/gpchelkin/scdlbot.git\n    cd scdlbot\n    pip3 install --requirement requirements.txt\n\n    # Update:\n    git pull\n    pip3 install --requirement requirements.txt\n\n\nConfigure Bot\n\"\"\"\"\"\"\"\"\"\"\"\"\"\n\nDownload or copy configuration file sample and set up\nconfig environment variables in it:\n\n::\n\n    # If you've installed from PyPI - download sample config somewhere:\n    curl -o .env https://raw.githubusercontent.com/gpchelkin/scdlbot/master/.env.sample\n\n    # If you've got Git source - just copy sample config:\n    cp .env.sample .env\n\n    # Use your favourite editor. Sample config is self-documented:\n    nano .env\n\nTelegram Bot Settings\n\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\n\nSend the commands from respective filenames in ``telegram_settings`` dir to `@BotFather <https://t.me/BotFather>`__, choose your bot and copy corresponding values in order to use the bot conveniently.\nDisable privacy mode if you want bot to read and check every message in group for links.\nOtherwise, it would work only for commands.\n\nRunning Locally or at Dedicated Server\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nUsing `Heroku Local <https://devcenter.heroku.com/articles/heroku-local#run-your-app-locally-using-the-heroku-local-command-line-tool>`__ (preferred)\n\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\n\nYou will need `Heroku CLI <https://cli.heroku.com/>`__ installed.\n\n::\n\n    # If you've installed from PyPI - download Procfile first (otherwise already present in Git repository):\n    curl -O https://raw.githubusercontent.com/gpchelkin/scdlbot/master/Procfile\n\n    # For long polling mode (when USE_WEBHOOK=0):\n    heroku local -e .env worker\n    # For webhook mode (when USE_WEBHOOK=1):\n    heroku local -e .env web\n\nUsing Python only\n\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\n\n::\n\n    export $(grep -v '^#' .env | xargs)\n    python3 -m scdlbot\n    # or in one line:\n    env $(grep -v '^#' .env | xargs) python3 -m scdlbot\n\n    # If you've installed package from PyPI into the system,\n    # you can also replace 'python3 -m scdlbot' with only 'scdlbot'\n\nDeploying to `Heroku <https://heroku.com/>`__\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\n|Deploy|\n\nRegister on Heroku, press the button above and\nconfigure variables for deploying.\nWhen app is deployed you **must** set only one dyno working on\n\"Resources\" tab in your app settings depending on `which way of getting\nupdates <https://core.telegram.org/bots/api#getting-updates>`__ you have\nchosen and set in config variables: ``worker`` for polling or ``web``\nfor webhook.\n\nManually\n\"\"\"\"\"\"\"\"\n\nYou can do the same as the button above but using `Heroku\nCLI <https://cli.heroku.com/>`__, not as much of a fun. Assuming you are in\n``scdlbot`` repository directory:\n\n::\n\n    heroku login\n    # Create app with Python 3 buildpack and set it for upcoming builds:\n    heroku create --buildpack heroku/python\n    heroku buildpacks:set heroku/python\n    # Add FFmpeg buildpack needed for youtube-dl & scdl:\n    heroku buildpacks:add --index 1 https://github.com/jonathanong/heroku-buildpack-ffmpeg-latest.git --app scdlbot\n    # Deploy app to Heroku:\n    git push heroku master\n    # Set config vars automatically from your local .env file\n    heroku plugins:install heroku-config\n    heroku config:push\n    # Or set them manually:\n    heroku config:set TG_BOT_TOKEN=\"<TG_BOT_TOKEN>\" STORE_CHAT_ID=\"<STORE_CHAT_ID>\" ...\n\nIf you use webhook, start web dyno and stop worker dyno:\n\n::\n\n    heroku ps:scale web=1 worker=0\n    heroku ps:stop worker\n\nIf you use polling, start worker dyno and stop web dyno:\n\n::\n\n    heroku ps:scale worker=1 web=0\n    heroku ps:stop web\n\nSome useful commands:\n\n::\n\n    # Attach to logs:\n    heroku logs -t\n    # Test run ffprobe\n    heroku run \"ffprobe -version\"\n\nDeploying to `Dokku <https://github.com/dokku/dokku>`__\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nUse Dokku (your own Heroku) installed on your own server.\nApp is tested and fully ready for deployment with polling\n(no webhook yet).\nhttps://github.com/dokku/dokku-letsencrypt\n\n::\n\n    export DOKKU=<your_dokku_server>\n    scp .env $DOKKU:~\n    ssh $DOKKU\n        export DOKKU=<your_dokku_server>\n        dokku apps:create scdlbot\n        dokku certs:generate scdlbot scdlbot.$DOKKU\n        dokku config:set scdlbot $(cat .env | xargs)\n        logout\n    git remote add dokku dokku@$DOKKU:scdlbot\n    git push dokku master\n    ssh $DOKKU\n        dokku ps:scale scdlbot worker=1 web=0\n        dokku ps:restart scdlbot\n\n.. |Deploy| image:: https://www.herokucdn.com/deploy/button.svg\n    :target: https://heroku.com/deploy\n",
    "bugtrack_url": null,
    "license": "MIT",
    "summary": "Telegram Bot for downloading MP3 rips of tracks/sets from SoundCloud, Bandcamp, YouTube with tags and artwork",
    "version": "0.14.2",
    "split_keywords": [
        "scdlbot",
        "telegram",
        "bot",
        "soundcloud",
        "bandcamp",
        "youtube",
        "mixcloud",
        "yandex",
        "audio",
        "music",
        "download"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "md5": "073322ab2250ea32f8cb845285e2b64f",
                "sha256": "f289ab19bcd4a5c007edfddead116767ecbf1df12435b50679c4f6080554b575"
            },
            "downloads": -1,
            "filename": "scdlbot-0.14.2-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "073322ab2250ea32f8cb845285e2b64f",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.9,<4.0",
            "size": 36229,
            "upload_time": "2022-12-19T08:04:21",
            "upload_time_iso_8601": "2022-12-19T08:04:21.589653Z",
            "url": "https://files.pythonhosted.org/packages/59/54/9d73b02ac9cec697479c60f0aa0808383d46a05822c8c1098fb8c927316b/scdlbot-0.14.2-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "md5": "3245befec9abcdcfbdfd3a9bb7381657",
                "sha256": "e504034cd703c2df85542a0a606fe3a7cfa79cbc2f0deea2557d548441c8ac5b"
            },
            "downloads": -1,
            "filename": "scdlbot-0.14.2.tar.gz",
            "has_sig": false,
            "md5_digest": "3245befec9abcdcfbdfd3a9bb7381657",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.9,<4.0",
            "size": 32630,
            "upload_time": "2022-12-19T08:04:23",
            "upload_time_iso_8601": "2022-12-19T08:04:23.116099Z",
            "url": "https://files.pythonhosted.org/packages/8a/39/0f1d72965e362c01db2cebfc55c0a7a5fe2625eb25082595232c22f3a987/scdlbot-0.14.2.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2022-12-19 08:04:23",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "github_user": "gpchelkin",
    "github_project": "scdlbot",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "requirements": [
        {
            "name": "args",
            "specs": [
                [
                    "==",
                    "0.1.0"
                ]
            ]
        },
        {
            "name": "bandcamp-downloader",
            "specs": [
                [
                    "==",
                    "0.0.13"
                ]
            ]
        },
        {
            "name": "beautifulsoup4",
            "specs": [
                [
                    "==",
                    "4.11.1"
                ]
            ]
        },
        {
            "name": "boltons",
            "specs": [
                [
                    "==",
                    "21.0.0"
                ]
            ]
        },
        {
            "name": "brotli",
            "specs": [
                [
                    "==",
                    "1.0.9"
                ]
            ]
        },
        {
            "name": "brotlicffi",
            "specs": [
                [
                    "==",
                    "1.0.9.2"
                ]
            ]
        },
        {
            "name": "certifi",
            "specs": [
                [
                    "==",
                    "2022.12.7"
                ]
            ]
        },
        {
            "name": "cffi",
            "specs": [
                [
                    "==",
                    "1.15.1"
                ]
            ]
        },
        {
            "name": "chardet",
            "specs": [
                [
                    "==",
                    "5.1.0"
                ]
            ]
        },
        {
            "name": "charset-normalizer",
            "specs": [
                [
                    "==",
                    "2.1.1"
                ]
            ]
        },
        {
            "name": "clint",
            "specs": [
                [
                    "==",
                    "0.5.1"
                ]
            ]
        },
        {
            "name": "cryptography",
            "specs": [
                [
                    "==",
                    "38.0.4"
                ]
            ]
        },
        {
            "name": "dacite",
            "specs": [
                [
                    "==",
                    "1.6.0"
                ]
            ]
        },
        {
            "name": "decorator",
            "specs": [
                [
                    "==",
                    "5.1.1"
                ]
            ]
        },
        {
            "name": "demjson3",
            "specs": [
                [
                    "==",
                    "3.0.6"
                ]
            ]
        },
        {
            "name": "docopt",
            "specs": [
                [
                    "==",
                    "0.6.2"
                ]
            ]
        },
        {
            "name": "ffmpeg-python",
            "specs": [
                [
                    "==",
                    "0.2.0"
                ]
            ]
        },
        {
            "name": "future",
            "specs": [
                [
                    "==",
                    "0.18.2"
                ]
            ]
        },
        {
            "name": "idna",
            "specs": [
                [
                    "==",
                    "3.4"
                ]
            ]
        },
        {
            "name": "lxml",
            "specs": [
                [
                    "==",
                    "4.9.2"
                ]
            ]
        },
        {
            "name": "mock",
            "specs": [
                [
                    "==",
                    "4.0.3"
                ]
            ]
        },
        {
            "name": "mutagen",
            "specs": [
                [
                    "==",
                    "1.46.0"
                ]
            ]
        },
        {
            "name": "pathvalidate",
            "specs": [
                [
                    "==",
                    "2.5.2"
                ]
            ]
        },
        {
            "name": "patool",
            "specs": [
                [
                    "==",
                    "1.12"
                ]
            ]
        },
        {
            "name": "plumbum",
            "specs": [
                [
                    "==",
                    "1.8.0"
                ]
            ]
        },
        {
            "name": "prometheus-client",
            "specs": [
                [
                    "==",
                    "0.15.0"
                ]
            ]
        },
        {
            "name": "pycparser",
            "specs": [
                [
                    "==",
                    "2.21"
                ]
            ]
        },
        {
            "name": "pycryptodomex",
            "specs": [
                [
                    "==",
                    "3.16.0"
                ]
            ]
        },
        {
            "name": "pysocks",
            "specs": [
                [
                    "==",
                    "1.7.1"
                ]
            ]
        },
        {
            "name": "python-dateutil",
            "specs": [
                [
                    "==",
                    "2.8.2"
                ]
            ]
        },
        {
            "name": "python-telegram-bot",
            "specs": [
                [
                    "==",
                    "12.8"
                ]
            ]
        },
        {
            "name": "python-telegram-handler",
            "specs": [
                [
                    "==",
                    "2.2.1"
                ]
            ]
        },
        {
            "name": "pywin32",
            "specs": [
                [
                    "==",
                    "305"
                ]
            ]
        },
        {
            "name": "requests",
            "specs": [
                [
                    "==",
                    "2.28.1"
                ]
            ]
        },
        {
            "name": "requests",
            "specs": [
                [
                    "==",
                    "2.28.1"
                ]
            ]
        },
        {
            "name": "scdl",
            "specs": [
                [
                    "==",
                    "2.7.3"
                ]
            ]
        },
        {
            "name": "six",
            "specs": [
                [
                    "==",
                    "1.16.0"
                ]
            ]
        },
        {
            "name": "soundcloud-v2",
            "specs": [
                [
                    "==",
                    "1.3.1"
                ]
            ]
        },
        {
            "name": "soupsieve",
            "specs": [
                [
                    "==",
                    "2.3.2.post1"
                ]
            ]
        },
        {
            "name": "termcolor",
            "specs": [
                [
                    "==",
                    "2.1.1"
                ]
            ]
        },
        {
            "name": "tornado",
            "specs": [
                [
                    "==",
                    "6.2"
                ]
            ]
        },
        {
            "name": "unicode-slugify",
            "specs": [
                [
                    "==",
                    "0.1.5"
                ]
            ]
        },
        {
            "name": "unidecode",
            "specs": [
                [
                    "==",
                    "1.3.6"
                ]
            ]
        },
        {
            "name": "urllib3",
            "specs": [
                [
                    "==",
                    "1.26.13"
                ]
            ]
        },
        {
            "name": "websockets",
            "specs": [
                [
                    "==",
                    "10.4"
                ]
            ]
        },
        {
            "name": "yt-dlp",
            "specs": [
                [
                    "==",
                    "2022.11.11"
                ]
            ]
        }
    ],
    "lcname": "scdlbot"
}
        
Elapsed time: 0.02322s