{
"info": {
"author": "Mathieu Agopian and more",
"author_email": "mathieu.agopian@gmail.com",
"bugtrack_url": null,
"classifiers": [
"Development Status :: 5 - Production/Stable",
"Environment :: Console",
"Intended Audience :: Developers",
"Natural Language :: English",
"Programming Language :: Python",
"Programming Language :: Python :: 2",
"Programming Language :: Python :: 2.6",
"Programming Language :: Python :: 2.7",
"Programming Language :: Python :: 3",
"Programming Language :: Python :: 3.1",
"Programming Language :: Python :: 3.2",
"Programming Language :: Python :: 3.3"
],
"description": "########################\nVideo Embed Code Cleaner\n########################\n\n.. image:: https://secure.travis-ci.org/magopian/vecc.png\n :alt: Build Status\n :target: https://travis-ci.org/magopian/vecc\n\nCleans and updates your video's embed code.\n\nOver time, the embed codes used for videos from various providers have changed\nand evolved, to make them more and more compatible with a broader set of\ndevices.\n\nThis is where vecc is useful: it detects the video provider and id from a given\nembed code, and provides various utilities to clean this code and validate that\nthe video is still available.\n\n\nInstall\n=======\n\nEither use ``pip``, which is the easiest way:\n\n::\n\n $ pip install vecc\n\nEither download the tarball from http://pypi.python.org/pypi/vecc, untar it,\nand install it manually:\n\n::\n\n $ python setup.py install\n\n\nUsage\n=====\n\n::\n\n $ vecc -h\n usage: vecc [-h] [--version] {clean,validate} ...\n\n Video Embed Code Cleaner.\n\n optional arguments:\n -h, --help show this help message and exit\n -t TIMEOUT, --timeout TIMEOUT\n timeout for the validation (10 seconds by default)\n --version show program's version number and exit\n\n sub-commands:\n {clean,validate}\n clean clean the embed code\n validate validate that the video is still available\n\n\n\nSub-commands\n============\n\n* ``clean``: takes a video embed code, and returns the video id, provider, and\n new embed code. Takes an optional ``-v|--validate`` parameter, to check if\n the video is still available.\n* ``validate``: takes a video id and provider, and check if it's still\n available.\n\n\n\nReturn codes\n============\n\nThere's three different return codes possible:\n\n* ``1``: Timeout while validating (doing a ``HEAD`` request) the video\n* ``2``: Provider not found\n* ``3``: The video is not available anymore\n\n\nExample\n=======\n\n::\n\n $ vecc clean '' -v\n video id: k6Lg9UXest3kho5p9X\n provider: dailymotion\n embed code: \n This video is still valid\n\n\nAPI\n===\n\n* ``extract``: takes a video embed code and a list of streaming video types (i.e. like .flv or .mp4) for direct video urls and return the following values:\n\n - ``status``: ``True`` if ``vecc`` has extracted video info, ``False`` else. See ``errno`` and ``errmsg`` for extended info about error\n - ``video_id``: extracted video ID\n - ``provider``: recognized provider\n - ``clean_code``: embeded code\n - ``real_link``: web browser link to video with player\n - ``title``: video title string\n - ``description``: description or text content of the video (string)\n - ``image``: url link to image preview of video\n - ``duration``: duration of video in format ``HH:MM:SS``\n - ``created_date``: when video was published (python date)\n - ``errno``: if ``errno`` > 0: HTTP request error code or specific API error code, if ``errno`` == ``-1``: global connection error, i.e. no connection to provider (no internet connection or provider website down), if ``errno`` == ``-2``: wrong code format\n - ``errmsg``: error message related to error code.\n\n\nCode example\n============\n\n::\n\n # import extract from vecc library\n from vecc import extract\n\n video_link = 'a video url'\n video_infos = extract(video_link, ['mp4', 'flv'])\n\n\nProviders\n=========\n\nVideo providers (Google video, Youtube, Vimeo, Dailymotion, Facebook...) are configured\nin the ``vecc/providers.py`` file.\n\nEach provider configuration consists of:\n\n* name: youtube\n* link template: string template (that'll be interpolated with format_) used to\n build the cleaned code. This is the link to the embedded video player. Needs\n the ``{video_id}`` tag.\n* embed template: string template used to build the new embed code. Needs the\n ``{video_link}`` tag.\n* validation template: string template used to build the link used to validate\n that the video is still available. This is the link to the video itself (as\n seen on the provider's website). Needs the ``{video_id}`` tag.\n* matches: regular expressions used to \"match\" a video embed code to a video\n provider. Must capture the video id.\n\n.. _format: http://docs.python.org/library/functions.html#format\n\n\nChangelog\n=========\n\n* **v1.01**:\n\n * added validation_link option to extract\n\n* **v1.0**:\n\n * lots of bugfixes after testing 20000 different video links, first mature version\n\n* **v0.16**:\n\n * added created_date info\n\n* **v0.15**:\n\n * added facebook API\n\n* **v0.14**:\n\n * added streaming providers\n\n* **v0.13**:\n\n * added extract function\n\n* **v0.12**:\n\n * Fix previous commit that broke ``vecc.clean``\n\n* **v0.11**:\n\n * added a ``timeout`` parameter for the validation\n * now uses proper return codes for failures\n\n* **v0.10**:\n\n * fix print in py2 following porting to py3\n\n* **v0.9**:\n\n * use schema-less urls for the default providers\n * make travis use tox\n * provide a wheel package\n\n* **v0.8**:\n\n * compatible python 2.6 to python 3.3\n * 100% test coverage\n\n* **v0.7**:\n\n * dropped allowfullscreen\n * added autoPlay=1&related=0 on video links\n\n* **v0.6**:\n\n * video size of the cleaned embed code is now 480x395\n * all embed codes with iframes use the same format with\n allowfullscreen=\"true\", autoPlay=\"1\", related=\"0\"\n\n* **v0.5**:\n\n * compatibility with python2.6: ``argparse`` as a dependency\n\n* **v0.4**:\n\n * compatibility with python2.6: ``format`` needs field numbers",
"description_content_type": null,
"docs_url": null,
"download_url": "UNKNOWN",
"downloads": {
"last_day": -1,
"last_month": -1,
"last_week": -1
},
"home_page": "https://github.com/ellimac54/vecc",
"keywords": null,
"license": "BSD",
"maintainer": null,
"maintainer_email": null,
"name": "vecc",
"package_url": "https://pypi.org/project/vecc/",
"platform": "UNKNOWN",
"project_url": "https://pypi.org/project/vecc/",
"project_urls": {
"Download": "UNKNOWN",
"Homepage": "https://github.com/ellimac54/vecc"
},
"release_url": "https://pypi.org/project/vecc/1.2/",
"requires_dist": null,
"requires_python": null,
"summary": "Video Embed Code Cleaner",
"version": "1.2"
},
"last_serial": 2208100,
"releases": {
"0.1": [
{
"comment_text": "",
"digests": {
"md5": "21f0dd5bb696adce8c95402dfb4ced64",
"sha256": "b239a3a0f25d3d0c8901458da087e9fa0e58a415a53b7dec131e4dc3cc18d19b"
},
"downloads": -1,
"filename": "vecc-0.1.tar.gz",
"has_sig": false,
"md5_digest": "21f0dd5bb696adce8c95402dfb4ced64",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 5739,
"upload_time": "2012-09-29T10:25:38",
"url": "https://files.pythonhosted.org/packages/a4/72/bcbb9dbb9a6cdb3fab71f6edf598082a8dd8ce4c8ff23c52b071de5e3108/vecc-0.1.tar.gz"
}
],
"0.10": [
{
"comment_text": "",
"digests": {
"md5": "a62f6b2eefbd73805e7acafa64e66e50",
"sha256": "e87e699aa7b2d37fddd47063324735f0b6fc041667a046763312a62ea84e1e82"
},
"downloads": -1,
"filename": "vecc-0.10-py2.py3-none-any.whl",
"has_sig": false,
"md5_digest": "a62f6b2eefbd73805e7acafa64e66e50",
"packagetype": "bdist_wheel",
"python_version": "3.3",
"requires_python": null,
"size": 9390,
"upload_time": "2013-12-04T14:46:47",
"url": "https://files.pythonhosted.org/packages/c6/cd/17da83538e2c382341606a18336856ac5f59c179e9fd791f70b14f038efd/vecc-0.10-py2.py3-none-any.whl"
},
{
"comment_text": "",
"digests": {
"md5": "11b9fa222f010d9a3e711794e337fc2b",
"sha256": "de530b8a9f9ffc74bc1a338266386bf630212bb2ae973ff2968a76e89ca1c24a"
},
"downloads": -1,
"filename": "vecc-0.10.tar.gz",
"has_sig": false,
"md5_digest": "11b9fa222f010d9a3e711794e337fc2b",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 6563,
"upload_time": "2013-12-04T14:46:43",
"url": "https://files.pythonhosted.org/packages/d0/8b/79b0d054675c5540a7d98939603531e7103a2929a88f3a50940912ac7993/vecc-0.10.tar.gz"
}
],
"0.11": [
{
"comment_text": "",
"digests": {
"md5": "e54734879a08da80995675053f0277e6",
"sha256": "dfa6e2fe47a8d1a51ba740d7e714fded306a6884dd3fc1050dec036d28f288db"
},
"downloads": -1,
"filename": "vecc-0.11-py2.py3-none-any.whl",
"has_sig": false,
"md5_digest": "e54734879a08da80995675053f0277e6",
"packagetype": "bdist_wheel",
"python_version": "2.7",
"requires_python": null,
"size": 9545,
"upload_time": "2014-04-07T13:46:49",
"url": "https://files.pythonhosted.org/packages/98/23/c424b7c7409d293b3da8d68ebfa332273f374d60114962b4ae7e8b24aa25/vecc-0.11-py2.py3-none-any.whl"
},
{
"comment_text": "",
"digests": {
"md5": "cfb175e01568acc17504c9ad69002073",
"sha256": "959ac4572146b889d654ba4194729b9c266b25c46cee55544d0da3255c1fc7c2"
},
"downloads": -1,
"filename": "vecc-0.11.tar.gz",
"has_sig": false,
"md5_digest": "cfb175e01568acc17504c9ad69002073",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 6871,
"upload_time": "2014-04-07T13:46:40",
"url": "https://files.pythonhosted.org/packages/4c/cd/ba3901c9201823e78779689af21ddba86f5335090731b874cd381928d0e1/vecc-0.11.tar.gz"
}
],
"0.12": [
{
"comment_text": "",
"digests": {
"md5": "21c52548b8fc7e4a3d269d8259508e6e",
"sha256": "585922ebbf6db6c3df0deb78432f522d84f4e47eece8baa8ee12935e006788e5"
},
"downloads": -1,
"filename": "vecc-0.12-py2.py3-none-any.whl",
"has_sig": false,
"md5_digest": "21c52548b8fc7e4a3d269d8259508e6e",
"packagetype": "bdist_wheel",
"python_version": "2.7",
"requires_python": null,
"size": 9610,
"upload_time": "2014-04-21T06:54:03",
"url": "https://files.pythonhosted.org/packages/4a/17/5d3b5847bee2c5d77dccc1ff9439e501da16923c2dc67e7ce3c766badfdd/vecc-0.12-py2.py3-none-any.whl"
},
{
"comment_text": "",
"digests": {
"md5": "13409c7fb8979ad5278d0bddbc67dd17",
"sha256": "6666834af1c1c3661fc82b78ea327c49f7e25895967d40b6d748f3163918bea0"
},
"downloads": -1,
"filename": "vecc-0.12.tar.gz",
"has_sig": false,
"md5_digest": "13409c7fb8979ad5278d0bddbc67dd17",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 6905,
"upload_time": "2014-04-21T06:53:55",
"url": "https://files.pythonhosted.org/packages/8d/24/9e8056616e8524c2f3c160f2ebd54e844181e0ff9dd606bc383b485089f9/vecc-0.12.tar.gz"
}
],
"0.13": [
{
"comment_text": "built for Darwin-14.3.0",
"digests": {
"md5": "33937f6b0ac8382984809793ff9b95a6",
"sha256": "f295652d0b40488e0e3824426da581f61db9ad5e9ffdeede3642f955a1027007"
},
"downloads": -1,
"filename": "vecc-0.13.macosx-10.10-intel.tar.gz",
"has_sig": false,
"md5_digest": "33937f6b0ac8382984809793ff9b95a6",
"packagetype": "bdist_dumb",
"python_version": "any",
"requires_python": null,
"size": 9110,
"upload_time": "2015-05-27T14:14:59",
"url": "https://files.pythonhosted.org/packages/37/0c/231d547de08375140cf8405c58b8e2444f37242325d01748ba2cc45c3406/vecc-0.13.macosx-10.10-intel.tar.gz"
},
{
"comment_text": "",
"digests": {
"md5": "e07d10fba51034ebf22838174a0338ef",
"sha256": "391d8ef4adc18c81238cedf86789421d57281a9291008c9863e15cbf6c08732a"
},
"downloads": -1,
"filename": "vecc-0.13.tar.gz",
"has_sig": false,
"md5_digest": "e07d10fba51034ebf22838174a0338ef",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 7420,
"upload_time": "2015-05-27T14:14:55",
"url": "https://files.pythonhosted.org/packages/27/07/88eb403791a695d3093c761c7b23967286c419cf037b5d3549c0375a761a/vecc-0.13.tar.gz"
}
],
"0.2": [
{
"comment_text": "",
"digests": {
"md5": "97bf068ef4aa5d2bc93d1504bd971cee",
"sha256": "e8e1ef4594f025c04419abb9c028d657a5fc2ec4074fb6b3e30e5d63abe81278"
},
"downloads": -1,
"filename": "vecc-0.2.tar.gz",
"has_sig": false,
"md5_digest": "97bf068ef4aa5d2bc93d1504bd971cee",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 5765,
"upload_time": "2012-10-01T08:27:00",
"url": "https://files.pythonhosted.org/packages/80/8b/3af6e702918adbb0251e7cd6132d9f163d623d6280852f4d924eb6685596/vecc-0.2.tar.gz"
}
],
"0.3": [
{
"comment_text": "",
"digests": {
"md5": "209ba26432773811b170a7b60800ce05",
"sha256": "112f0f09af7b554b5e496ad88d0fbeae1fdf196cb0af5428c95ab98f8e231a63"
},
"downloads": -1,
"filename": "vecc-0.3.tar.gz",
"has_sig": false,
"md5_digest": "209ba26432773811b170a7b60800ce05",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 5766,
"upload_time": "2012-10-01T09:45:59",
"url": "https://files.pythonhosted.org/packages/e5/4c/e0c5bc3488bee728d46b4c59049dd849d85c97a7285efe936944566488a5/vecc-0.3.tar.gz"
}
],
"0.4": [
{
"comment_text": "",
"digests": {
"md5": "d83feafc5a48b9549eea0b3d5a429b31",
"sha256": "cb2bd80bba30a591ea084e978cdac01eca9c09a332b4d47049bc768c8af208c7"
},
"downloads": -1,
"filename": "vecc-0.4.tar.gz",
"has_sig": false,
"md5_digest": "d83feafc5a48b9549eea0b3d5a429b31",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 6196,
"upload_time": "2012-10-10T10:02:31",
"url": "https://files.pythonhosted.org/packages/57/3c/a96d951286e185628b5b7d81b4861eabc85bcf49c5ed5e8c7e022e92cbbc/vecc-0.4.tar.gz"
}
],
"0.5": [
{
"comment_text": "",
"digests": {
"md5": "e2b0744593ba10341c3fab58cfef7f72",
"sha256": "12619e0c79c5c9242e3fa2f508b7a3ec34d6c385697989ed5df8448e806e39d3"
},
"downloads": -1,
"filename": "vecc-0.5.tar.gz",
"has_sig": false,
"md5_digest": "e2b0744593ba10341c3fab58cfef7f72",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 6291,
"upload_time": "2012-10-10T10:18:47",
"url": "https://files.pythonhosted.org/packages/eb/db/83eb746407713fe03d984690eb995accdd312fb417a4b8eb2195b89ab07e/vecc-0.5.tar.gz"
}
],
"0.6": [
{
"comment_text": "",
"digests": {
"md5": "d41d9caa62e9e73c4010e0246a95cfe6",
"sha256": "1e133528b3ae9917ac566c4fb1e22363ad6c4e71edea018247b2029974678cf8"
},
"downloads": -1,
"filename": "vecc-0.6.tar.gz",
"has_sig": false,
"md5_digest": "d41d9caa62e9e73c4010e0246a95cfe6",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 6340,
"upload_time": "2012-10-10T16:55:00",
"url": "https://files.pythonhosted.org/packages/12/8a/9aadfe7c2af3594d6af018e94b22f9890574d3077501c89b85eca4da71f8/vecc-0.6.tar.gz"
}
],
"0.7": [
{
"comment_text": "",
"digests": {
"md5": "3381e2286627ce6aea2b4df89821542d",
"sha256": "3512f993d6549be946ce3c12547c7c9e8e0688890a3d68bcb6c1bea231f9d9d8"
},
"downloads": -1,
"filename": "vecc-0.7.tar.gz",
"has_sig": false,
"md5_digest": "3381e2286627ce6aea2b4df89821542d",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 6378,
"upload_time": "2012-10-11T08:32:25",
"url": "https://files.pythonhosted.org/packages/0f/63/b2f6f28664b964db188523c9283acf9f6226714c1a9bfdeccc41185ff6cf/vecc-0.7.tar.gz"
}
],
"0.8": [
{
"comment_text": "",
"digests": {
"md5": "66d75ff52d43387d08a14c54534c28cd",
"sha256": "3116529442d8f6251079ba19f7be0093460bfd3e4feb45f24929b4cde71a48eb"
},
"downloads": -1,
"filename": "vecc-0.8-py2.py3-none-any.whl",
"has_sig": false,
"md5_digest": "66d75ff52d43387d08a14c54534c28cd",
"packagetype": "bdist_wheel",
"python_version": "3.3",
"requires_python": null,
"size": 9179,
"upload_time": "2013-11-14T08:31:18",
"url": "https://files.pythonhosted.org/packages/0a/1e/88d6a748f35e102a66752ab629e67127a142d78b237f12927800be490b46/vecc-0.8-py2.py3-none-any.whl"
},
{
"comment_text": "",
"digests": {
"md5": "06590b144aa4c7eed4153e4b65b59fda",
"sha256": "daa1d5ee9322b987360b4515b1015e7c5eec0f3844127190a7d33033857eba75"
},
"downloads": -1,
"filename": "vecc-0.8.tar.gz",
"has_sig": false,
"md5_digest": "06590b144aa4c7eed4153e4b65b59fda",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 6455,
"upload_time": "2013-04-01T19:57:38",
"url": "https://files.pythonhosted.org/packages/8d/a1/0093778039eb73b186ff5b836dec05c641b275a765e60ebfc3aad0619d09/vecc-0.8.tar.gz"
}
],
"0.9": [
{
"comment_text": "",
"digests": {
"md5": "a1b5793f084e8dbeeb4b83cb0948b409",
"sha256": "acffe34936f43ba2e0404c79e573f36c9c6c537586c5f2bdb6351353c7dc575a"
},
"downloads": -1,
"filename": "vecc-0.9-py2.py3-none-any.whl",
"has_sig": false,
"md5_digest": "a1b5793f084e8dbeeb4b83cb0948b409",
"packagetype": "bdist_wheel",
"python_version": "3.3",
"requires_python": null,
"size": 9296,
"upload_time": "2013-11-26T17:08:49",
"url": "https://files.pythonhosted.org/packages/a4/75/db8ea38b3aa0c0cb7d956f808c4d2fb46c150401a3fd6b0d06099e7cd893/vecc-0.9-py2.py3-none-any.whl"
},
{
"comment_text": "",
"digests": {
"md5": "81bf19b09752476af4cb212c2764cbf0",
"sha256": "88a645cd68b65bc2bdc677d4bed60e61dc3b8e248e70cd269ab74489a78321bf"
},
"downloads": -1,
"filename": "vecc-0.9.tar.gz",
"has_sig": false,
"md5_digest": "81bf19b09752476af4cb212c2764cbf0",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 6524,
"upload_time": "2013-11-26T17:08:46",
"url": "https://files.pythonhosted.org/packages/7f/80/4cbbcddb7f68c5db13108ac535b000e0aa68aaed959c1f8bc53610a7b70f/vecc-0.9.tar.gz"
}
],
"1.2": [
{
"comment_text": "",
"digests": {
"md5": "fa6c710561424188b253d89a5d6fd5e5",
"sha256": "c8286d5600bf8fa8efb2337002043afb01d680dac791ccfb9fcde9662fc8b362"
},
"downloads": -1,
"filename": "vecc-1.2.tar.gz",
"has_sig": false,
"md5_digest": "fa6c710561424188b253d89a5d6fd5e5",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 15279,
"upload_time": "2016-07-07T15:17:45",
"url": "https://files.pythonhosted.org/packages/c6/d0/abd028caa8ab1a0b71c2e340bcbe07553a5aa4230cfe4af6c25cf729d06b/vecc-1.2.tar.gz"
}
]
},
"urls": [
{
"comment_text": "",
"digests": {
"md5": "fa6c710561424188b253d89a5d6fd5e5",
"sha256": "c8286d5600bf8fa8efb2337002043afb01d680dac791ccfb9fcde9662fc8b362"
},
"downloads": -1,
"filename": "vecc-1.2.tar.gz",
"has_sig": false,
"md5_digest": "fa6c710561424188b253d89a5d6fd5e5",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 15279,
"upload_time": "2016-07-07T15:17:45",
"url": "https://files.pythonhosted.org/packages/c6/d0/abd028caa8ab1a0b71c2e340bcbe07553a5aa4230cfe4af6c25cf729d06b/vecc-1.2.tar.gz"
}
]
}