מבט כללי
אינטגרציית Stream עם Moodle מאפשרת:
- סנכרון אוטומטי של הקלטות מפגשים (Zoom, Teams, Unicko וכו') לשרת Stream.
- הטמעה אוטומטית של הקלטות בקורס Moodle הרלוונטי (תוסף
local_stream). - פעילות Stream בקורס — פלייליסט ונגן וידאו מתוך Moodle (תוסף
mod_stream).
שני התוספים עובדים יחד: local_stream מטפל בזרימת ההקלטות מהענן; mod_stream מציג לסטודנטים את הסרטונים מתוך Stream.
תוספים נדרשים
-
local_stream — אינטגרציה מרכזית (Local plugin)
מסנכרן מפגשים והקלטות, מעלה לשרת Stream ומטמיע בקורס.
GitHub – moodle-local_stream · Moodle.org -
mod_stream — פעילות Stream (Activity module)
מוסיף פעילות «STREAM» לקורס: פלייליסט, נגן מוטמע, איסוף הקלטות לפי קורס.
GitHub – moodle-mod_stream · Moodle.org
דרישות מקדימות
- מערכת Moodle מעודכנת עם הרשאות מנהל אתר (Site administrator).
- שרת Stream פעיל (למשל
https://stream.example.ac.il) עם מפתח API (Account ID). - גישה ל־SSH/FTP או deployment לתיקיית Moodle, או התקנה דרך ממשק «Install plugins».
- לסנכרון Zoom: חשבון Zoom עם Cloud Recording ו־API credentials (OAuth / Server-to-Server, לפי הגדרת הארגון).
גרסאות Moodle וענפי Git
ב־moodle-mod_stream מוגדרים הענפים:
| גרסת Moodle | ענף Git מומלץ |
|---|---|
| Moodle 3.4 – 4.1 | MOODLE_401 |
| Moodle 4.2 | MOODLE_402 |
ל־local_stream השתמשו בענף master או בענף שמתאים לגרסת Moodle שלכם (בדקו ב־README של המאגר).
התקנה
מומלץ להתקין קודם את local_stream, ואחריו את mod_stream.
שלב 1 — הורדת הקבצים
- הורידו ZIP מ־GitHub (Code → Download ZIP) או clone:
git clone https://github.com/mattan-d/moodle-local_stream.git git clone https://github.com/mattan-d/moodle-mod_stream.git - עבור
mod_stream— עברו לענף המתאים לגרסת Moodle (למשלMOODLE_402).
שלב 2 — העתקה לתיקיות Moodle
| תוסף | נתיב בשרת Moodle |
|---|---|
| local_stream | moodle/local/stream/ |
| mod_stream | moodle/mod/stream/ |
ודאו ששם התיקייה הוא stream (אותיות קטנות), ושכל קבצי התוסף נמצאים ישירות בתוכה (כולל version.php).
שלב 3 — השלמת ההתקנה ב־Moodle
- היכנסו כמנהל אתר.
- עברו לניהול האתר → הודעות (Site administration → Notifications).
- Moodle יזהה את התוספים החדשים — לחצו המשך והשלימו את עדכון מסד הנתונים.
- חזרו על התהליך לכל תוסף (אם התקנתם אחד אחרי השני).
הגדרות בשרת Stream (VideoTube)
לפני הגדרת התוספים ב־Moodle, ודאו שבמערכת Stream מוגדר מפתח API שהתוספים ישתמשו בו:
- היכנסו להגדרות המערכת (
/admin/settings) בשרת Stream. - מצאו את שדה Account ID / API Key (הערך ב־
$CONFIG->apikey). - העתיקו את המפתח — הוא יוזן בשני תוספי Moodle כ־Account ID.
- ודאו שכתובת שרת Stream (URL) נגישה מ־Moodle (HTTPS, ללא חסימת firewall).
הגדרת local_stream
נתיב: ניהול האתר → תוספים → תוספים מקומיים → Stream
הגדרות עיקריות
- Platform (פלטפורמה) — בחרו את מקור ההקלטות:
Zoom— סנכרון הקלטות ענן מ־Zoom.Microsoft Teams— הקלטות Teams.Unicko— דרך LTI (לפי הגדרת הארגון).
- Stream server / API — כתובת שרת Stream ו־Account ID (מפתח API).
- Zoom API (כשהפלטפורמה היא Zoom):
- Client ID / Client Secret או JWT / Server-to-Server credentials — לפי סוג האפליקציה ב־Zoom Marketplace.
- Cloud Recording חייב להיות מופעל בחשבון Zoom.
- Embed order — האם לשים את פעילות ההקלטה מתחת לפעילות המפגש המקורית (למשל מתחת ל־Zoom).
- Based grouping / duplicate handling — מניעת הטמעה כפולה של אותה הקלטה (לפי UUID של Zoom).
- Notifications (אופציונלי) — הודעה לנרשמים בקורס כשהקלטה חדשה הוטמעה.
בדיקת חיבור
לאחר שמירת ההגדרות, השתמשו בבדיקת סטטוס החיבור (אם קיימת במסך) כדי לוודא ש־Moodle מתקשר עם Stream ועם Zoom.
זרימת Zoom (תמצית)
- מרצה יוצר פעילות Zoom בקורס Moodle.
- המפגש מתקיים עם הקלטה לענן.
- משימה מתוזמנת של
local_streamמושכת רשימת הקלטות. - ההקלטה מועלית ל־Stream (דרך
webservice/api.php) ו/או נוצרת פעילות בקורס עם קישור לצפייה.
הגדרת mod_stream
נתיב: ניהול האתר → תוספים → מודולי פעילות → Stream
הגדרות ברמת האתר
- Stream API endpoint — כתובת בסיס של שרת Stream (למשל
https://stream.smkb.ac.il). - Account ID — אותו מפתח API כמו ב־
local_streamובהגדרות Stream. - Connection status — בדיקה ש־Moodle מצליח לגשת ל־
api2.phpולקבל רשימת סרטונים. - ברירות מחדל (לפי גרסה):
- האם לכלול אודיו / נגן אודיו לקורסים מסוימים.
- מצב איסוף הקלטות אוטומטי לפעילות.
מה mod_stream עושה בקורס
- מוסיף פעילות STREAM לקורס.
- מציג פלייליסט של סרטונים משרת Stream (לפי בחירה ידנית או איסוף אוטומטי).
- שולח ל־Stream פרטי משתמש מוגבלים (שם, דוא״ל, מזהה) לצורך אבטחה, סטטיסטיקות והגבלות צפייה — בהתאם להגדרות Stream.
משימות מתוזמנות (Cron)
ל־local_stream חובה להריץ Cron של Moodle:
- עברו לניהול האתר → שרת → משימות מתוזמנות (Scheduled tasks).
- מצאו את המשימה Embedded recordings (local_stream) — מחלקה
local_stream\task\embed. - ודאו שהיא מופעלת ורצה בתדירות מתאימה (למשל כל 5–15 דקות, או כל שעה).
- ודאו ש־Cron של Moodle רץ בשרת (crontab):
* * * * * php /path/to/moodle/admin/cli/cron.php
אפשר להריץ ידנית לבדיקה:
php /path/to/moodle/admin/cli/scheduled_task.php --execute='\local_stream\task\embed'
בדקו בלוג Moodle אם יש שגיאות API (Zoom / Stream).
איך זה עובד
הורדת סרטונים מענן Zoom
לאחר שהתוסף local_stream מוגדר, המערכת מתחברת לענן Zoom, מזהה הקלטות של מפגשים שקשורים לקורסי Moodle, ומעלה אותן לשרת Stream. ההקלטות מרוכזות במערכת אחת לניהול, עריכה ותמלול.
הטמעה אוטומטית בקורס
הסרטונים שמסונכרנים מוטמעים אוטומטית בקורס הרלוונטי — זה שממנו נוצר מפגש ה־Zoom. המרצה לא חייב להעלות ידנית קבצים.
פעילות Stream לסטודנטים
באמצעות mod_stream ניתן להוסיף פעילות Stream עם כל סרטוני הקורס (כולל אלו שנאספו אוטומטית), לסדר פלייליסט ולשלוט בזמינות.
שימוש למרצה (תקציר)
לאחר שהמנהל הגדיר את התוספים:
- Zoom + הקלטה אוטומטית — צרו פעילות Zoom בקורס, הקליטו לענן; אחרי עיבוד Zoom ההקלטה תופיע בקורס (דרך local_stream).
- פעילות STREAM — בקורס: «הוספת פעילות או משאב» → STREAM:
- הגדירו כותרת ותיאור.
- הפעילו «איסוף הקלטות» או בחרו סרטונים ידנית משרת Stream.
- סדרו את הפלייליסט בגרירה.
- קבעו תאריכי פתיחה/סגירה אם נדרש.
מדריך מפורט למרצה: מדריך שימוש מהיר למרצה – STREAM ב־Moodle.
יצירת שאלות מסרטון: יצירת שאלות מסרטון Stream ב־Moodle.
פתרון בעיות
| בעיה | מה לבדוק |
|---|---|
| הקלטה לא מופיעה בקורס | Cloud Recording ב־Zoom; משימת local_stream\task\embed פעילה; Cron רץ; credentials של Zoom ו־Stream. |
| «Account ID is missing» / שגיאת API | Account ID ב־Moodle תואם ל־apikey בשרת Stream; HTTPS נגיש. |
| כותרות / עברית מוצגות כ־???? | UTF-8 ב־Moodle ו־MySQL; עדכון אחרון של שרת Stream (תיקון charset ב־API). |
| הקלטה בקורס הלא נכון | מיפוי courseid / שם קורס בהגדרות; נושא המפגש ב־Zoom. |
| כפילויות של אותה הקלטה | הפעילו «based grouping» / dedup ב־local_stream. |
| פעילות mod_stream ריקה | חיבור ל־api2.php; המשתמש/מרצה בעל סרטונים ב־Stream; פרטיות הסרטונים (ציבורי/הזדהות). |
לאבחון מתקדם: הפעילו debug ב־Moodle, הריצו את המשימה המתוזמנת ידנית ובדקו את הלוג.