<h1 align="center">
<img src="https://raw.githubusercontent.com/robelasefa/pydemy/main/assets/logo.jpg" alt="Pydemy Logo" width="380">
<br>
</h1>
[![PyPI version](https://img.shields.io/pypi/v/pydemy)](https://pypi.org/project/pydemy/)
[![Python versions](https://img.shields.io/pypi/pyversions/pydemy)](https://pypi.org/project/pydemy/)
[![Udemy API version](https://img.shields.io/badge/Udemy%20API-v2.0-blue)](https://www.udemy.com/developers/affiliate)
[![PyPI Monthly Downloads](https://img.shields.io/pypi/dm/pydemy)](https://pypistats.org/packages/pydemy)
[![Publish to PyPI](https://github.com/robelasefa/pydemy/actions/workflows/release_pypi.yml/badge.svg)](https://github.com/robelasefa/pydemy/actions/workflows/release_pypi.yml)
[![GitHub issues](https://img.shields.io/github/issues/robelasefa/pydemy)](https://github.com/robelasefa/pydemy/issues)
[![License](https://img.shields.io/github/license/robelasefa/pydemy)](https://github.com/robelasefa/pydemy/blob/main/LICENSE)
[![pre-commit.ci status](https://results.pre-commit.ci/badge/github/robelasefa/pydemy/main.svg)](https://results.pre-commit.ci/latest/github/robelasefa/pydemy/main)
Pydemy provides a convenient way to interact with the **[Udemy Affiliate API](https://www.udemy.com/developers/affiliate)** from your Python applications. You can use Pydemy to search for courses, retrieve course details, fetch reviews, and potentially explore other functionalities offered by the API.
## Udemy API Support
Pydemy currently supports the **Udemy Affiliate API v2.0**. This API allows developers to access public information about Udemy courses.
**Note**: The [Udemy Instructor API](https://www.udemy.com/developers/instructor/), which provides functionalities specific to course creation and management, is not currently supported by Pydemy.
## Main Features
- **Synchronous and Asynchronous API Requests**: Choose between synchronous and asynchronous interactions with the Udemy API. This flexibility caters to different development needs and preferences. To enhance application performance, for example, employ asynchronous calls for non-blocking activities.
- **Search for Courses**: Quickly find courses using a variety of parameters, such as price filters, categories, or keywords.
- **Get Detailed Course Information**: Get in-depth information on a particular course, such as the title, curriculum, teacher, ratings, and more.
- **Get Course Reviews**: By retrieving and examining reviews for a specific course, you can learn a great deal about the experiences of students.
- **Use Pydantic for Data Management and Validation**: The `pydemy` library makes extensive use of the potent Pydantic library. It offers an organized method of working with the data and guarantees that the information obtained from the Udemy API is accurate. This facilitates robust interactions with the Udemy API and makes programming easier.
## Getting Started
1. **Obtain API Credentials**:
Visit [Udemy API Clients](https://www.udemy.com/user/edit-api-clients/) to create a new API client and obtain your `clientID` and `clientSecret`.
2. **Installation**:
Install the library using pip:
```bash
pip install pydemy
```
3. **Usage**:
Import the `UdemyClient` class:
```python
from pydemy import UdemyClient
```
Initialize the client with your API credentials:
```python
client_id = "YOUR_CLIENT_ID"
client_secret = "YOUR_CLIENT_SECRET"
client = UdemyClient(client_id=client_id, client_secret=client_secret)
```
## Quickstart
Here is an example that demonstrates how to get started with using the `UdemyClient` to retrieve information about public courses.
**For more in-depth examples and usage scenarios, be sure to check out the `examples` folder.**
```python
client = UdemyClient(client_id="YOUR_CLIENT_ID", client_secret="YOUR_CLIENT_SECRET")
# Get a list of public courses (replace '4534650' with a specific course ID for details)
courses = client.get_public_curriculum_list(course_id=4534650)
# Print course titles
for course in courses:
print(course.title)
```
## Contributing
We welcome contributions from the community! If you have bug fixes, improvements, or new features, feel free to submit a pull request. For detailed guidelines on contributing, please refer to the [CONTRIBUTING.rst](https://github.com/robelasefa/pydemy/blob/main/CONTRIBUTING.rst) file.
Here's a brief overview:
- Fork the repository.
- Create a new branch for your changes.
- Implement your changes and add unit tests if applicable.
- Follow consistent coding style.
- Submit a pull request with a clear description of your changes.
## License
This project is licensed under the MIT License - see the **[LICENSE.md](https://github.com/robelasefa/pydemy/blob/main/LICENSE)** file for details.
Raw data
{
"_id": null,
"home_page": "https://github.com/robelasefa/pydemy",
"name": "pydemy",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.10",
"maintainer_email": null,
"keywords": "Udemy, API, Courses, Education, Udemy Affiliate API, Course Finder, Online Learning, Udemy Integration, Education API, Course Reviews, Learning Platform, Affiliate Marketing, EdTech, Pydantic",
"author": "Robel Asefa",
"author_email": "Robel Asefa <mertigenet@gmail.com>",
"download_url": "https://files.pythonhosted.org/packages/f7/53/d6cc5dd0f66916126cee072b84141fd24238438e5bfbb9078a732148254c/pydemy-0.2.6.tar.gz",
"platform": null,
"description": "<h1 align=\"center\">\n <img src=\"https://raw.githubusercontent.com/robelasefa/pydemy/main/assets/logo.jpg\" alt=\"Pydemy Logo\" width=\"380\">\n <br>\n</h1>\n\n[![PyPI version](https://img.shields.io/pypi/v/pydemy)](https://pypi.org/project/pydemy/)\n[![Python versions](https://img.shields.io/pypi/pyversions/pydemy)](https://pypi.org/project/pydemy/)\n[![Udemy API version](https://img.shields.io/badge/Udemy%20API-v2.0-blue)](https://www.udemy.com/developers/affiliate)\n[![PyPI Monthly Downloads](https://img.shields.io/pypi/dm/pydemy)](https://pypistats.org/packages/pydemy)\n[![Publish to PyPI](https://github.com/robelasefa/pydemy/actions/workflows/release_pypi.yml/badge.svg)](https://github.com/robelasefa/pydemy/actions/workflows/release_pypi.yml)\n[![GitHub issues](https://img.shields.io/github/issues/robelasefa/pydemy)](https://github.com/robelasefa/pydemy/issues)\n[![License](https://img.shields.io/github/license/robelasefa/pydemy)](https://github.com/robelasefa/pydemy/blob/main/LICENSE)\n[![pre-commit.ci status](https://results.pre-commit.ci/badge/github/robelasefa/pydemy/main.svg)](https://results.pre-commit.ci/latest/github/robelasefa/pydemy/main)\n\nPydemy provides a convenient way to interact with the **[Udemy Affiliate API](https://www.udemy.com/developers/affiliate)** from your Python applications. You can use Pydemy to search for courses, retrieve course details, fetch reviews, and potentially explore other functionalities offered by the API.\n\n## Udemy API Support\n\nPydemy currently supports the **Udemy Affiliate API v2.0**. This API allows developers to access public information about Udemy courses.\n\n**Note**: The [Udemy Instructor API](https://www.udemy.com/developers/instructor/), which provides functionalities specific to course creation and management, is not currently supported by Pydemy.\n\n## Main Features\n\n- **Synchronous and Asynchronous API Requests**: Choose between synchronous and asynchronous interactions with the Udemy API. This flexibility caters to different development needs and preferences. To enhance application performance, for example, employ asynchronous calls for non-blocking activities.\n- **Search for Courses**: Quickly find courses using a variety of parameters, such as price filters, categories, or keywords.\n- **Get Detailed Course Information**: Get in-depth information on a particular course, such as the title, curriculum, teacher, ratings, and more.\n- **Get Course Reviews**: By retrieving and examining reviews for a specific course, you can learn a great deal about the experiences of students.\n- **Use Pydantic for Data Management and Validation**: The `pydemy` library makes extensive use of the potent Pydantic library. It offers an organized method of working with the data and guarantees that the information obtained from the Udemy API is accurate. This facilitates robust interactions with the Udemy API and makes programming easier.\n\n## Getting Started\n\n1. **Obtain API Credentials**:\n Visit [Udemy API Clients](https://www.udemy.com/user/edit-api-clients/) to create a new API client and obtain your `clientID` and `clientSecret`.\n\n2. **Installation**:\n Install the library using pip:\n\n ```bash\n pip install pydemy\n ```\n\n3. **Usage**:\n Import the `UdemyClient` class:\n\n ```python\n from pydemy import UdemyClient\n ```\n\n Initialize the client with your API credentials:\n\n ```python\n client_id = \"YOUR_CLIENT_ID\"\n client_secret = \"YOUR_CLIENT_SECRET\"\n\n client = UdemyClient(client_id=client_id, client_secret=client_secret)\n ```\n\n## Quickstart\n\nHere is an example that demonstrates how to get started with using the `UdemyClient` to retrieve information about public courses.\n\n**For more in-depth examples and usage scenarios, be sure to check out the `examples` folder.**\n\n```python\nclient = UdemyClient(client_id=\"YOUR_CLIENT_ID\", client_secret=\"YOUR_CLIENT_SECRET\")\n\n# Get a list of public courses (replace '4534650' with a specific course ID for details)\ncourses = client.get_public_curriculum_list(course_id=4534650)\n\n# Print course titles\nfor course in courses:\n print(course.title)\n```\n\n## Contributing\n\nWe welcome contributions from the community! If you have bug fixes, improvements, or new features, feel free to submit a pull request. For detailed guidelines on contributing, please refer to the [CONTRIBUTING.rst](https://github.com/robelasefa/pydemy/blob/main/CONTRIBUTING.rst) file.\n\nHere's a brief overview:\n\n- Fork the repository.\n- Create a new branch for your changes.\n- Implement your changes and add unit tests if applicable.\n- Follow consistent coding style.\n- Submit a pull request with a clear description of your changes.\n\n## License\n\nThis project is licensed under the MIT License - see the **[LICENSE.md](https://github.com/robelasefa/pydemy/blob/main/LICENSE)** file for details.\n",
"bugtrack_url": null,
"license": "MIT",
"summary": "A Python library for interacting with the Udemy Affiliate API.",
"version": "0.2.6",
"project_urls": {
"Bug Tracker": "https://github.com/robelasefa/pydemy/issues",
"Homepage": "https://github.com/robelasefa/pydemy"
},
"split_keywords": [
"udemy",
" api",
" courses",
" education",
" udemy affiliate api",
" course finder",
" online learning",
" udemy integration",
" education api",
" course reviews",
" learning platform",
" affiliate marketing",
" edtech",
" pydantic"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "c60851b9deeb80c7ef6ad52602cd09e30eb27df96cb0ad4a4b40ea3097716db6",
"md5": "1f55ce4f8638776d3cb6ff24e0d54817",
"sha256": "6db401dd0f1c979a6ae97a8ad37e5e2f8d2dc6006d5fb2c7c141c37e26ce8793"
},
"downloads": -1,
"filename": "pydemy-0.2.6-py3-none-any.whl",
"has_sig": false,
"md5_digest": "1f55ce4f8638776d3cb6ff24e0d54817",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.10",
"size": 18944,
"upload_time": "2024-10-01T04:10:54",
"upload_time_iso_8601": "2024-10-01T04:10:54.749050Z",
"url": "https://files.pythonhosted.org/packages/c6/08/51b9deeb80c7ef6ad52602cd09e30eb27df96cb0ad4a4b40ea3097716db6/pydemy-0.2.6-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "f753d6cc5dd0f66916126cee072b84141fd24238438e5bfbb9078a732148254c",
"md5": "313e3628e0f7a2300a803c4675597ba6",
"sha256": "7e1bf4fe5b1916d023295f1d8cac5a369b1cca0e6bdc6fe3e9d88a40da9d6cb8"
},
"downloads": -1,
"filename": "pydemy-0.2.6.tar.gz",
"has_sig": false,
"md5_digest": "313e3628e0f7a2300a803c4675597ba6",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.10",
"size": 15366,
"upload_time": "2024-10-01T04:10:56",
"upload_time_iso_8601": "2024-10-01T04:10:56.108370Z",
"url": "https://files.pythonhosted.org/packages/f7/53/d6cc5dd0f66916126cee072b84141fd24238438e5bfbb9078a732148254c/pydemy-0.2.6.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-10-01 04:10:56",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "robelasefa",
"github_project": "pydemy",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"requirements": [
{
"name": "httpx",
"specs": [
[
"~=",
"0.27.0"
]
]
},
{
"name": "pydantic",
"specs": [
[
"~=",
"2.9.1"
]
]
}
],
"lcname": "pydemy"
}