sopel-youtube


Namesopel-youtube JSON
Version 0.6.0 PyPI version JSON
download
home_pageNone
SummaryYouTube link information plugin for Sopel.
upload_time2024-06-03 05:21:45
maintainerNone
docs_urlNone
authorNone
requires_python<4,>=3.8
licenseEFL-2.0
keywords sopel plugin bot irc youtube
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # sopel-youtube

YouTube link information plugin for Sopel.

## Installing

Releases are hosted on PyPI, so after installing Sopel, all you need is `pip`:

```shell
$ pip install sopel-youtube
```

(Make sure you use the "correct" `pip`, i.e. the one corresponding to the Python
environment where you have Sopel installed.)

### Migrating from `sopel-modules.youtube`

You can simply `pip uninstall sopel-modules.youtube` prior to installing this
package; no extra steps should be needed. `sopel-youtube` inherits the
configuration section originally defined and used by the older versions.

### Latest source

If you want to help develop or test the plugin, you'll need to install from
source. Clone the repo first, then:

```shell
$ pip install -e .
```

#### Testing changes

To run tests, make sure you have the development dependencies as well:

```shell
$ pip install -r dev-requirements.txt
```

Run the test suite from the repo root directory:

```shell
$ pytest -v .
```

## Getting your API key
Go to the [Google Developers Console](https://console.developers.google.com/)
and create an application. When it's created, go to the APIs section, select
the YouTube Data API and enable it. Then go to the Credentials section,
select "Add credentials", pick "API key", and then "Server key". You can enter
a name for it and limit the IPs it can be used from, but you don't have to.
Copy the value it gives you into the prompt in the config wizard (see below),
or the `api_key` field of the config file's `[youtube]` section.

## Configuring the plugin

`sopel-youtube` supports Sopel's interactive configuration wizard:

    sopel-plugins configure youtube

The `api_key` option is self-explanatory (see above).

If video "watch" links contain a playlist ID, the plugin will show the
playlist info as well as the video info by default. To disable this, set
`playlist_watch` to `False`.

For videos, by default, only the video length, uploader (channel name), view
count, and upload date are shown. The included items, and the order in which
they appear, depend on the `info_items` setting, which is a list of keywords.
Unrecognized keywords are simply ignored. Supported `info_items` are:

* `comments` (comment count)
* `date` (upload time/date)
* `length` (duration)
* `likes` (count)
* `uploader` (channel name)
* `views` (view count)

Changes between 0.5.1 and 0.6.0
===============================
* New package name: `sopel-youtube` replaces `sopel-modules.youtube` (#55, #67)
* Sopel 8.0+ now required (#57, #65)
* Improve link handling (#56, #58)
* Improve thread-safety (#63)
* Fix date parsing error for playlists (#62)


Changes between 0.5.0 and 0.5.1
===============================
* Fix hiding load-time import errors (#52)


Changes between 0.4.3 and 0.5.0
===============================
* Prep for Sopel 8:
  * Require Sopel 7.1+; Sopel 7.0 is no longer supported
  * Use `BooleanAttribute` setting type (#41)
  * Switch from `sopel.module` to `sopel.plugin` (#42)
* Format time according to the channel's preference, w/fallback to bot setting (#50)
* Permit newer `google-api-python-client` library versions (#51)


Changes between 0.4.2 and 0.4.3
===============================
* Remove handling of dislikes, which YouTube removed from its API (#45)
* Make live-stream handling more robust, again (#48)
* Replace `votes` and `votes_color` keywords in `info_items` with `votes` (#49)
  * The old keywords will function as aliases until at least plugin version 0.5.0


Changes between 0.4.1 and 0.4.2
===============================
* Improve error handling (#44)


Changes between 0.4.0 and 0.4.1
===============================
* Handle "shorts" links (#36)
* Be more careful about auto-playlists (#38)


Changes between 0.3.2 and 0.4.0
===============================
* Enhance live stream support (#28)
* Add playlist handling (#29, #33)
* Protect against bidirectional text (#31)


Changes between 0.3.1 and 0.3.2
===============================
* Clean up some problematic imports (#25)
* Request only the necessary data fields from YouTube API (#27)


Changes between 0.3.0 and 0.3.1
===============================
* Override handling of rare API errors reported to output the key (#23)


Changes between 0.2.1 and 0.3.0
===============================
* Allow configuring what video details to include (#18)
* Remove outdated, ugly colors on "[YouTube]" output tag (#21)
* Minor cleanup (regex patterns, package metadata)


Changes between 0.2.0 and 0.2.1
===============================
* Handle API sending wrongly formatted timestamps (#20)


Changes between 0.1.3 and 0.2.0
===============================
* Update for Sopel 7 (#15)


Changes between 0.1.2 and 0.1.3
===============================
* Add retry mechanic to API fetching (#11)
* Fix exception traceback sometimes thrown on reconnect (#14)
* Update ancient, deprecated usage of Sopel's memory API (#16)


Changes between 0.1.1 and 0.1.2
===============================
* Fix error when video comments are disabled
* Improve duration parser
* Restrict google-api-python-client to compatible version range
* Fix version-number import issue during installation


Changes between 0.1.0 and 0.1.1
===============================
* Output is colorized
* Fix configuration wizard
* pip installation works regardless of pip version

            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "sopel-youtube",
    "maintainer": null,
    "docs_url": null,
    "requires_python": "<4,>=3.8",
    "maintainer_email": "dgw <dgw@technobabbl.es>",
    "keywords": "sopel, plugin, bot, irc, youtube",
    "author": null,
    "author_email": "Else Powell <else@asinif.com>, Max Gurela <maxpowa1@gmail.com>, dgw <dgw@technobabbl.es>",
    "download_url": "https://files.pythonhosted.org/packages/d8/f1/6f6580313fef7faf07e0357e68e43cd5aba8fb5805e2ed0d56d183cae421/sopel_youtube-0.6.0.tar.gz",
    "platform": "Linux x86, x86-64",
    "description": "# sopel-youtube\n\nYouTube link information plugin for Sopel.\n\n## Installing\n\nReleases are hosted on PyPI, so after installing Sopel, all you need is `pip`:\n\n```shell\n$ pip install sopel-youtube\n```\n\n(Make sure you use the \"correct\" `pip`, i.e. the one corresponding to the Python\nenvironment where you have Sopel installed.)\n\n### Migrating from `sopel-modules.youtube`\n\nYou can simply `pip uninstall sopel-modules.youtube` prior to installing this\npackage; no extra steps should be needed. `sopel-youtube` inherits the\nconfiguration section originally defined and used by the older versions.\n\n### Latest source\n\nIf you want to help develop or test the plugin, you'll need to install from\nsource. Clone the repo first, then:\n\n```shell\n$ pip install -e .\n```\n\n#### Testing changes\n\nTo run tests, make sure you have the development dependencies as well:\n\n```shell\n$ pip install -r dev-requirements.txt\n```\n\nRun the test suite from the repo root directory:\n\n```shell\n$ pytest -v .\n```\n\n## Getting your API key\nGo to the [Google Developers Console](https://console.developers.google.com/)\nand create an application. When it's created, go to the APIs section, select\nthe YouTube Data API and enable it. Then go to the Credentials section,\nselect \"Add credentials\", pick \"API key\", and then \"Server key\". You can enter\na name for it and limit the IPs it can be used from, but you don't have to.\nCopy the value it gives you into the prompt in the config wizard (see below),\nor the `api_key` field of the config file's `[youtube]` section.\n\n## Configuring the plugin\n\n`sopel-youtube` supports Sopel's interactive configuration wizard:\n\n    sopel-plugins configure youtube\n\nThe `api_key` option is self-explanatory (see above).\n\nIf video \"watch\" links contain a playlist ID, the plugin will show the\nplaylist info as well as the video info by default. To disable this, set\n`playlist_watch` to `False`.\n\nFor videos, by default, only the video length, uploader (channel name), view\ncount, and upload date are shown. The included items, and the order in which\nthey appear, depend on the `info_items` setting, which is a list of keywords.\nUnrecognized keywords are simply ignored. Supported `info_items` are:\n\n* `comments` (comment count)\n* `date` (upload time/date)\n* `length` (duration)\n* `likes` (count)\n* `uploader` (channel name)\n* `views` (view count)\n\nChanges between 0.5.1 and 0.6.0\n===============================\n* New package name: `sopel-youtube` replaces `sopel-modules.youtube` (#55, #67)\n* Sopel 8.0+ now required (#57, #65)\n* Improve link handling (#56, #58)\n* Improve thread-safety (#63)\n* Fix date parsing error for playlists (#62)\n\n\nChanges between 0.5.0 and 0.5.1\n===============================\n* Fix hiding load-time import errors (#52)\n\n\nChanges between 0.4.3 and 0.5.0\n===============================\n* Prep for Sopel 8:\n  * Require Sopel 7.1+; Sopel 7.0 is no longer supported\n  * Use `BooleanAttribute` setting type (#41)\n  * Switch from `sopel.module` to `sopel.plugin` (#42)\n* Format time according to the channel's preference, w/fallback to bot setting (#50)\n* Permit newer `google-api-python-client` library versions (#51)\n\n\nChanges between 0.4.2 and 0.4.3\n===============================\n* Remove handling of dislikes, which YouTube removed from its API (#45)\n* Make live-stream handling more robust, again (#48)\n* Replace `votes` and `votes_color` keywords in `info_items` with `votes` (#49)\n  * The old keywords will function as aliases until at least plugin version 0.5.0\n\n\nChanges between 0.4.1 and 0.4.2\n===============================\n* Improve error handling (#44)\n\n\nChanges between 0.4.0 and 0.4.1\n===============================\n* Handle \"shorts\" links (#36)\n* Be more careful about auto-playlists (#38)\n\n\nChanges between 0.3.2 and 0.4.0\n===============================\n* Enhance live stream support (#28)\n* Add playlist handling (#29, #33)\n* Protect against bidirectional text (#31)\n\n\nChanges between 0.3.1 and 0.3.2\n===============================\n* Clean up some problematic imports (#25)\n* Request only the necessary data fields from YouTube API (#27)\n\n\nChanges between 0.3.0 and 0.3.1\n===============================\n* Override handling of rare API errors reported to output the key (#23)\n\n\nChanges between 0.2.1 and 0.3.0\n===============================\n* Allow configuring what video details to include (#18)\n* Remove outdated, ugly colors on \"[YouTube]\" output tag (#21)\n* Minor cleanup (regex patterns, package metadata)\n\n\nChanges between 0.2.0 and 0.2.1\n===============================\n* Handle API sending wrongly formatted timestamps (#20)\n\n\nChanges between 0.1.3 and 0.2.0\n===============================\n* Update for Sopel 7 (#15)\n\n\nChanges between 0.1.2 and 0.1.3\n===============================\n* Add retry mechanic to API fetching (#11)\n* Fix exception traceback sometimes thrown on reconnect (#14)\n* Update ancient, deprecated usage of Sopel's memory API (#16)\n\n\nChanges between 0.1.1 and 0.1.2\n===============================\n* Fix error when video comments are disabled\n* Improve duration parser\n* Restrict google-api-python-client to compatible version range\n* Fix version-number import issue during installation\n\n\nChanges between 0.1.0 and 0.1.1\n===============================\n* Output is colorized\n* Fix configuration wizard\n* pip installation works regardless of pip version\n",
    "bugtrack_url": null,
    "license": "EFL-2.0",
    "summary": "YouTube link information plugin for Sopel.",
    "version": "0.6.0",
    "project_urls": {
        "Bug Tracker": "https://github.com/sopel-irc/sopel-youtube/issues",
        "Homepage": "https://github.com/sopel-irc/sopel-youtube"
    },
    "split_keywords": [
        "sopel",
        " plugin",
        " bot",
        " irc",
        " youtube"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "ed21c36c5b951975b7ed15625f30526528779f0269d08148e848b7712c8eff5c",
                "md5": "ed8752200f0dc35b93dd54d6d9b1e580",
                "sha256": "b110231dd7dc2eb67745310d050d47504fd8d7ce6421fe1cbcb372d84a1726c1"
            },
            "downloads": -1,
            "filename": "sopel_youtube-0.6.0-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "ed8752200f0dc35b93dd54d6d9b1e580",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": "<4,>=3.8",
            "size": 9856,
            "upload_time": "2024-06-03T05:21:43",
            "upload_time_iso_8601": "2024-06-03T05:21:43.647097Z",
            "url": "https://files.pythonhosted.org/packages/ed/21/c36c5b951975b7ed15625f30526528779f0269d08148e848b7712c8eff5c/sopel_youtube-0.6.0-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "d8f16f6580313fef7faf07e0357e68e43cd5aba8fb5805e2ed0d56d183cae421",
                "md5": "9153317e898e510161d543a7b392dc40",
                "sha256": "49aaf5f90ba38bd5fe51f41cec15b4da42a9659336dd918b622d859fb3b5516f"
            },
            "downloads": -1,
            "filename": "sopel_youtube-0.6.0.tar.gz",
            "has_sig": false,
            "md5_digest": "9153317e898e510161d543a7b392dc40",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": "<4,>=3.8",
            "size": 12665,
            "upload_time": "2024-06-03T05:21:45",
            "upload_time_iso_8601": "2024-06-03T05:21:45.139678Z",
            "url": "https://files.pythonhosted.org/packages/d8/f1/6f6580313fef7faf07e0357e68e43cd5aba8fb5805e2ed0d56d183cae421/sopel_youtube-0.6.0.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-06-03 05:21:45",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "sopel-irc",
    "github_project": "sopel-youtube",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "lcname": "sopel-youtube"
}
        
Elapsed time: 0.27470s