Udemy Connector

Udemy connector

Udemy is an online learning and teaching marketplace with over 183000 courses and 40 million students where they can learn programming, marketing, data science and more.

Udemy Business is a next-gen learning solution that transforms the workplace learning experience through a consumer-first on-demand learning solution. Built for businesses striving to be at the forefront of innovation, Udemy Business offers fresh, relevant learning anytime, anywhere. The collection features thousands of high-quality courses, taught by real-world experts, which cover a wide range of topics from development and IT to design, leadership and stress management. In addition to its curated content collection, organizations can also securely host and distribute their own proprietary content.

This connector allows fetching courses information from Udemy and Udemy Business through their API.

Method of identifying updates

The Udemy API does not provide a way of filtering results based on a field, such a timestamp, for that reason a full scan is performed each time a scan is run whether incremental or full.

When running incremental crawls a list of fields must be provided in order to generate a checksum to verify if a course has changed since the last time a crawl was run. The following three fields are recommended for that purpose:

  • id

  • url

  • last_update_date

Udemy advises refreshing your library every week to ensure the latest Udemy Courses are made available.

API version

This connector was built on top of the Udemy Business API v2.11.

Crawled objects

This connector only fetches information about courses. It allows you to retrieve your Udemy Catalog and import all courses into your environment, allowing you to browse Udemy content from the Learning Management System (LMS).

In order to retrieve courses through the API the following parameter is the only one that can be sent.

  • Fields[course]: Optional request parameter to specify which fields to return with a call. The Fields parameter object type also accepts the following field lists @min, @default, and @all.

Fetch mechanism

API endpoints

  • https://{ACCOUNT_NAME}.udemy.com/api-2.0/organizations/{ACCOUNT_ID}/courses/list/?fields[course]=@all

High Level Data Flow

Technical constraints

For the Courses API, due to performance recommendations provided by Udemy set the page_size parameter up to 20.

The udemy connector uses PDP native backoff policy for retrying requests, by default the backoff policy is set to Exponential with an initial delay of 2 seconds and up to 3 retries before failing the connection.

API Documentation

The Udemy Business API documentation can be found in the following url: https://udemy.app.box.com/s/uwa9onfjh6y3kousfqss72ufdit38iz8.

Seed Configuration

Udemy APIs require basic authentication parameters to validate requests. The authentication parameters must be provided with every call and include a Bearer token computed by the connector after credentials are set within PDP.

Credentials configuration:

{ "config": { "clientId": "", "clientSecret": "" }, "name": "credentials", "type": "udemy-connector" }

Connector configuration:

{ "seed": { "url": "https://fuseuniversal.udemy.com/api-2.0/organizations/175528/courses/list/", "pageSize": 20, "fields": "@all", "connection": { "readTimeout": "10s", "connectTimeout": "10s" }, "backoffPolicy": { "initialDelay": "2s", "retries": 3 } }, "name": "Udemy Seed", "credentialId": "fac719f6-82a5-45b5-910b-d691104d6b20", "type": "udemy-connector", "batchSize": 20, "pipelineId": "4bd59108-c01c-4a3d-a96d-c4f4abd0c22b", "idPrefix": "udemy" }

Configuration parameters:

seed.url

(Required, String) URL used to fetch courses from Udemy API.

seed.pageSize

(Optional, Integer) Number of courses to retrieve from Udemy. Defaults to 20. Udemy recommends a value up to 20.

client.connection.connectTimeout

(Optional, Duration) A duration to tell wait before considering the HTTP connection to timeout. Defaults to 10s.

client.connection.readTimeout

(Optional, Duration) A duration to tell wait before considering the HTTP connection read to timeout. Defaults to 10s.

client.backoffPolicy.initialDelay

(Optional, Duration) A duration to tell the wait before retrying connecting to Udemy API. Defaults to 2s.

client.backoffPolicy.retries

(Optional, Integer) An integer to tell the number of retries a connection to the Udemy API would take before considering the API not available.. Defaults to 3.

fields

(Optional, String). Accepts the following field lists @min, @default, and @all. Defaults to @all. Refer to your Udemy Business API documentation for a detailed list of fields associated to each type.

Connector outcome

Below you can find a sample from the connector outcome.

{ "__pdp__": { "id": "udemy-2596618", "checksum": "4e93e06d3d7a3f68841dee773c9d438d", "action": "INSERT", "seedId": "011bb236-d8ad-4a0d-a69b-c2852cb2442d", "executionId": "523f2e8d-7310-4b40-9130-13e8a1f10ca8", "executionStart": 1641427104572, "errors": null, "errored": false }, "_class": "course", "id": 2596618, "title": ".NET Core 3.0 & C# 7 Backend Frontend Geliştirici Kursu - 3", "description": "<p>Bu seri daha önce klasik .NET Framework ile yayınladığım<strong> \"C# ile Backend Geliştirici Olun\" </strong>serisinin <strong>.NET Core ile yazılmış ve geliştirilmiş versiyonudur.</strong></p><p>.NET Core ile hazırlanmış kurs taleplerinden yola çıkarak hazırlanmıştır. Prestij kursları olarak hazırladığım, sektörde tecrübeli geliştiricileri ve sektöre sapasağlam adımlarla giriş yapmayı hedefleyen adayları hedef almaktadır.</p><p>Bu kursta kullanılan mimari eğitim ve danışmanlık yaptığım 300+ kurumda veya firmada kullandırdığım şekliyle birebir yansıtılmıştır. Sektörün önde gelen bir çok firmasında da kullanılmaktadır. Profilimden bu firmaların bazılarını inceleyebilirsiniz.</p><p>Serinin üçüncü bölümünü keyifle hazırladım.</p><ol><li><p><em>AOP ve Cross Cutting Altyapılarını Anlamak</em></p></li><li><p><em>Authorization Altyapısı İle Çalışmak</em></p></li><li><p><em>Rol Bazlı Profesyonel Bir Sistem Kurmak</em></p></li><li><p><em>AOP- Authorization</em></p></li><li><p><em>Yazılımda Performans Takibi Yapmak</em></p></li><li><p><em>AOP - Performance</em></p></li><li><p><em>Loglama İle Çalışmak</em></p></li><li><p><em>AOP - Logging</em></p></li><li><p><em>ve daha fazlası...</em></p></li></ol><p>Eğer kurumsal bir kariyer hedefiniz varsa, bu kurs sizin için başladığınız gibi heyecanla bitireceğiniz bir kurs olacaktır. Şimdiden başarılar dilerim.</p>", "url": "https://fuseuniversal.udemy.com/course/2596618/enroll/", "estimated_content_length": 113, "categories": [ "Programming Languages" ], "num_lectures": 23, "num_videos": 21, "promo_video_url": [ { "type": "video/mp4", "label": "720", "file": "https://mp4-b.udemycdn.com/2019-10-08_08-52-02-af8b7caeb52409d8a59ce61110614db9/WebHD_720p.mp4?secure=9u5epNSmku9EpkrX7hI6gw%3D%3D%2C1641443312" }, { "type": "video/mp4", "label": "480", "file": "https://mp4-b.udemycdn.com/2019-10-08_08-52-02-af8b7caeb52409d8a59ce61110614db9/WebHD_480.mp4?secure=-Iey-Utykbv3TO2yd7cK3w%3D%3D%2C1641443312" }, { "type": "video/mp4", "label": "360", "file": "https://mp4-b.udemycdn.com/2019-10-08_08-52-02-af8b7caeb52409d8a59ce61110614db9/WebHD.mp4?secure=FZ60Tg-m8ju81QaLKtVSqA%3D%3D%2C1641443312" }, { "type": "video/mp4", "label": "144", "file": "https://mp4-b.udemycdn.com/2019-10-08_08-52-02-af8b7caeb52409d8a59ce61110614db9/Web_144.mp4?secure=bDpdmNHLLOVgHXymppHZKw%3D%3D%2C1641443312" } ], "instructors": [ "Engin Demiroğ" ], "requirements": { "list": [ "Temel C# ve teknolojileri bilgisi" ] }, "what_you_will_learn": { "list": [ "Kurumsal mimari altyapısını öğreneceksiniz.", "AOP ve Cross Cutting Altyapılarını Anlayacaksınız", "Rol bazlı profesyonel sistem oluşturabileceksiniz", "AOP - Authorization yazabileceksiniz", "AOP- Performance yazabileceksiniz", "AOP- Logging yazabileceksiniz" ] }, "images": { "size_48x27": "https://img-c.udemycdn.com/course/48x27/2596618_4e30.jpg", "size_50x50": "https://img-c.udemycdn.com/course/50x50/2596618_4e30.jpg", "size_75x75": "https://img-b.udemycdn.com/course/75x75/2596618_4e30.jpg", "size_96x54": "https://img-b.udemycdn.com/course/96x54/2596618_4e30.jpg", "size_100x100": "https://img-c.udemycdn.com/course/100x100/2596618_4e30.jpg", "size_125_H": "https://img-c.udemycdn.com/course/125_H/2596618_4e30.jpg", "size_200_H": "https://img-c.udemycdn.com/course/200_H/2596618_4e30.jpg", "size_240x135": "https://img-c.udemycdn.com/course/240x135/2596618_4e30.jpg", "size_304x171": "https://img-b.udemycdn.com/course/304x171/2596618_4e30.jpg", "size_480x270": "https://img-c.udemycdn.com/course/480x270/2596618_4e30.jpg", "size_750x422": "https://img-b.udemycdn.com/course/750x422/2596618_4e30.jpg" }, "mobile_native_deeplink": "udemyufb://discover?coursePublishedTitle=net-core-csharp-kursu", "locale": { "_class": "locale", "locale": "tr_TR" }, "is_practice_test_course": false, "primary_category": { "_class": "course_category", "id": 306, "title": "Development", "url": "/courses/ufb-development/" }, "primary_subcategory": { "_class": "course_subcategory", "id": 410, "title": "Programming Languages", "url": "/courses/ufb-development/ufb-programming-languages/" }, "num_quizzes": 0, "num_practice_tests": 0, "has_closed_caption": false, "caption_languages": [], "caption_locales": [], "estimated_content_length_video": 113, "last_update_date": "2021-12-28", "xapi_activity_id": "https://www.udemy.com/course/2596618", "accreditations": [] }

©2024 Pureinsights Technology Corporation