{ "info": { "author": "Mpho Mphego", "author_email": "mpho112@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 3 - Alpha", "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7", "Topic :: Software Development :: Build Tools" ], "description": "\n# medium-to-speech\n\n[![Build Status](https://travis-ci.com/mmphego/medium-to-speech.svg?branch=master)](https://travis-ci.com/mmphego/medium-to-speech)\n[![Python](https://img.shields.io/badge/Python-3.6%2B-red.svg)](https://www.python.org/downloads/)\n![GitHub](https://img.shields.io/github/license/mmphego/medium-to-speech.svg) [\n![PyPI](https://img.shields.io/pypi/v/medium-speech.svg?color=green&label=pypi%20release)\n![PyPI - Downloads](https://img.shields.io/pypi/dm/medium-speech.svg?label=PyPi%20Downloads)\n![saythanks](https://img.shields.io/badge/say-thanks-ff69b4.svg)](https://saythanks.io/to/mmphego)\n\n## Medium posts to Speech.\n\nA Python library for lazy people (like myself), who never finds time to read daily [Medium](http://medium.com/) posts and prefer to listen to them instead. It convert [medium](http://medium.com/) post to markdown using a [Docker container/image](https://hub.docker.com/r/mmphego/mediumexporter) then uses [gTTs](https://github.com/pndurette/gTTS) to interface with Google Translate's text-to-speech API which converts text to spoken `MP3` files, thereafter plays the generated `mp3` files with [`cvlc`](https://www.videolan.org/vlc/) assuming it is installed.\n\n## Apt Requirements\n\nYou will need to install a few dependencies before you continue:\n\n```shell\nsudo apt install -y docker-ce mpg123 python3.6 python3.6-dev vlc\n```\n\n## Installation\n\nTo install run:\n```shell\npython3 -m pip install -U medium-speech\n```\n\n## Usage\n\nAvailable arguments:\n```shell\nplay_medium_post.py -h\n\nusage: play_medium_post.py [-h] [--play] [--cleanup] [--speed N_SPEED]\n [--loglevel LOG_LEVEL] [--url-post MEDIUM_URL]\n [--file MARKDOWN_FILE]\n\noptional arguments:\n -h, --help show this help message and exit\n --play, -p Play generated MP3 files.\n --cleanup, -c Cleanup generated MP3 files.\n --speed N_SPEED, -s N_SPEED\n Play every n'th frame only ie Play speed.\n --loglevel LOG_LEVEL log level to use, default [INFO], options [INFO,\n DEBUG, ERROR]\n --url-post MEDIUM_URL, -u MEDIUM_URL\n Medium post URL.\n --file MARKDOWN_FILE Specify a Markdown file.\n\n```\n\nListen to a [Medium](http://medium.com/) post:\n```shell\nplay_medium_post.py -ps 1 -u https://medium.com/@mmphego/how-i-managed-to-harness-imposter-syndrome-391fdb754820\n```\n\nListen to Markdown file:\n```shell\nplay_medium_post.py -ps 1 --file README.md\n```\n\n## Oh, Thanks!\n\nBy the way... thank you! And if you'd like to [say thanks](https://saythanks.io/to/mmphego)... :)\n\n\u2728\ud83c\udf70\u2728\n\n## Feedback\n\nFeel free to fork it or send me PR to improve it.\n\n\n", "description_content_type": "text/markdown", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/mmphego/medium-to-speech", "keywords": "medium markdown docker-py text-to-speech", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "medium-speech", "package_url": "https://pypi.org/project/medium-speech/", "platform": "", "project_url": "https://pypi.org/project/medium-speech/", "project_urls": { "AboutMe": "https://blog.mphomphego.co.za/aboutme", "Bug Reports": "https://github.com/mmphego/markdown-to-speech//issues", "Homepage": "https://github.com/mmphego/medium-to-speech", "Say Thanks!": "https://saythanks.io/to/mmphego", "Source": "https://github.com/mmphego/markdown-to-speech/" }, "release_url": "https://pypi.org/project/medium-speech/0.1.3/", "requires_dist": [ "argcomplete", "coloredlogs", "docker[tls]", "gTTS", "Markdown", "coverage ; extra == 'testing'", "flake8 ; extra == 'testing'", "mock ; extra == 'testing'", "nose ; extra == 'testing'", "pytest ; extra == 'testing'" ], "requires_python": "~=3.6", "summary": "Medium posts as Markdown to Speech.", "version": "0.1.3" }, "last_serial": 5143582, "releases": { "0.1.0": [ { "comment_text": "", "digests": { "md5": "915bd15841e4344338601773531ded3f", "sha256": "7ff1b1f6075f048a3ad175c04e6bf8bb132d325726c401da5de9cb318b65c756" }, "downloads": -1, "filename": "medium_speech-0.1.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "915bd15841e4344338601773531ded3f", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": "~=3.6", "size": 7662, "upload_time": "2019-04-14T12:25:44", "url": "https://files.pythonhosted.org/packages/e1/b8/f3d7f60fa92af005e19c8988b0841fa1fa5df1a7962d01ddbbdc871545f5/medium_speech-0.1.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "6044483d1d47ab2d03d6b44260f79cfd", "sha256": "1711d919b3a27a0a7524c217a7b0b0a03d4a3643c888f3c22d25f211f6946e84" }, "downloads": -1, "filename": "medium-speech-0.1.0.tar.gz", "has_sig": false, "md5_digest": "6044483d1d47ab2d03d6b44260f79cfd", "packagetype": "sdist", "python_version": "source", "requires_python": "~=3.6", "size": 8027, "upload_time": "2019-04-14T12:25:46", "url": "https://files.pythonhosted.org/packages/bc/3d/7474d6f2cc5bdd9f8f8ed884ae0a8cea90e5d45fe42b1d1328955f575a6c/medium-speech-0.1.0.tar.gz" } ], "0.1.1": [ { "comment_text": "", "digests": { "md5": "2e877b2125bb6f37404e5cc71673afa4", "sha256": "6ff5e226b456fced26f3dea6f56e296697752960bb3c9d2cce29ee2025d2248d" }, "downloads": -1, "filename": "medium_speech-0.1.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "2e877b2125bb6f37404e5cc71673afa4", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": "~=3.6", "size": 7658, "upload_time": "2019-04-14T12:27:45", "url": "https://files.pythonhosted.org/packages/3c/be/a8bd9724c226d049674c982d16a7643c5771c9799f0892af583fd8687bab/medium_speech-0.1.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "d99e4e5110cc918510165d8984b4a450", "sha256": "bc39bcdb6d37ba8e00a4647097c215e42f0e04bf47939b87c296ff73857f8c28" }, "downloads": -1, "filename": "medium-speech-0.1.1.tar.gz", "has_sig": false, "md5_digest": "d99e4e5110cc918510165d8984b4a450", "packagetype": "sdist", "python_version": "source", "requires_python": "~=3.6", "size": 7994, "upload_time": "2019-04-14T12:27:46", "url": "https://files.pythonhosted.org/packages/29/d3/b8906adf9f6b57ed2e0df5d6780c257b5536869a52007fc0bd4f7ca77fcb/medium-speech-0.1.1.tar.gz" } ], "0.1.2": [ { "comment_text": "", "digests": { "md5": "93102ac6305beb2e57d306db7f5e10bd", "sha256": "6d7a77272911cb40f72ab13d4168532d9a032058f328a9226b17cfcfee0aaf9d" }, "downloads": -1, "filename": "medium_speech-0.1.2-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "93102ac6305beb2e57d306db7f5e10bd", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": "~=3.6", "size": 7688, "upload_time": "2019-04-14T15:00:06", "url": "https://files.pythonhosted.org/packages/de/3e/edab97dbe0bdc4be590fb6d4b676d6b6e822edf4dd05bfff7dc76f0d14a7/medium_speech-0.1.2-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "a4a8033db5ed60a8fed5be6b10343238", "sha256": "67eef4d76bae0e7a582af189a503f554e86fc9b894b53f9ca6992cb60961d2f5" }, "downloads": -1, "filename": "medium-speech-0.1.2.tar.gz", "has_sig": false, "md5_digest": "a4a8033db5ed60a8fed5be6b10343238", "packagetype": "sdist", "python_version": "source", "requires_python": "~=3.6", "size": 8046, "upload_time": "2019-04-14T15:00:08", "url": "https://files.pythonhosted.org/packages/03/b2/5d2b32cb633a35e67d33dc6075e7902c917c2010a0f0a2f9dba6491c253a/medium-speech-0.1.2.tar.gz" } ], "0.1.3": [ { "comment_text": "", "digests": { "md5": "69a13f19e616a1c8573040d060506254", "sha256": "7c8fd45e54794a30a42faa0043cbc1c1759897cab4455e5df7925abb5419404f" }, "downloads": -1, "filename": "medium_speech-0.1.3-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "69a13f19e616a1c8573040d060506254", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": "~=3.6", "size": 7781, "upload_time": "2019-04-15T08:27:50", "url": "https://files.pythonhosted.org/packages/53/fe/c7e5559d41993eebfde2319d1c1a089ae3342ca0538ff7e35c76d6d5e304/medium_speech-0.1.3-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "fdd295acb25809f34228810ec532673b", "sha256": "d5617e4a50427c5f0fc9f217c63eb9c794d5aa3fb094281cb11d4341cbce38c7" }, "downloads": -1, "filename": "medium-speech-0.1.3.tar.gz", "has_sig": false, "md5_digest": "fdd295acb25809f34228810ec532673b", "packagetype": "sdist", "python_version": "source", "requires_python": "~=3.6", "size": 8155, "upload_time": "2019-04-15T08:27:52", "url": "https://files.pythonhosted.org/packages/5f/58/ff1477953bd73f9ea574dc6175087618b0e9a25a4a832b6612b605277059/medium-speech-0.1.3.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "69a13f19e616a1c8573040d060506254", "sha256": "7c8fd45e54794a30a42faa0043cbc1c1759897cab4455e5df7925abb5419404f" }, "downloads": -1, "filename": "medium_speech-0.1.3-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "69a13f19e616a1c8573040d060506254", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": "~=3.6", "size": 7781, "upload_time": "2019-04-15T08:27:50", "url": "https://files.pythonhosted.org/packages/53/fe/c7e5559d41993eebfde2319d1c1a089ae3342ca0538ff7e35c76d6d5e304/medium_speech-0.1.3-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "fdd295acb25809f34228810ec532673b", "sha256": "d5617e4a50427c5f0fc9f217c63eb9c794d5aa3fb094281cb11d4341cbce38c7" }, "downloads": -1, "filename": "medium-speech-0.1.3.tar.gz", "has_sig": false, "md5_digest": "fdd295acb25809f34228810ec532673b", "packagetype": "sdist", "python_version": "source", "requires_python": "~=3.6", "size": 8155, "upload_time": "2019-04-15T08:27:52", "url": "https://files.pythonhosted.org/packages/5f/58/ff1477953bd73f9ea574dc6175087618b0e9a25a4a832b6612b605277059/medium-speech-0.1.3.tar.gz" } ] }