جمع بيانات Instagram: المنشورات والمقاطع القصيرة والتعليقات
احصل على الملفات الشخصية والمنشورات والمقاطع القصيرة والتعليقات والوسوم والنصوص المفرّغة العامة من Instagram بصيغة JSON عبر واجهة REST واحدة، دون تسجيل دخول.
أبسط طريقة للحصول على بيانات Instagram العامة في 2026 هي واجهة API مستضافة لجمع البيانات: طلب HTTPS واحد يعيد لك ملفًا شخصيًا، أو منشوراته ومقاطعه القصيرة، أو التعليقات على منشور، أو منشورات وسم، أو النص المفرّغ لمقطع قصير، بصيغة JSON. مع crawlfeed، يكلّف كل طلب على Instagram رصيدًا واحدًا، ولا يحتاج إلا إلى مفتاح API، ويعيد البنية نفسها التي تعيدها بيانات TikTok وYouTube وX.
يستحوذ Instagram على حصة ضخمة من المحتوى المرئي على الإنترنت: حملات العلامات التجارية، وأعمال صنّاع المحتوى، وإطلاق المنتجات، وسلاسل التعليقات تحتها. وهو أيضًا من أصعب المنصات في استخراج البيانات منها. يشرح هذا الدليل كيف تجمع بيانات Instagram العامة (الملفات الشخصية، والمنشورات، والمقاطع القصيرة، والتعليقات، والوسوم، والقصص المميزة، والنصوص المفرّغة) بطلبات HTTPS عادية، مع شيفرة جاهزة للتشغيل بلغات cURL وJavaScript وPython.
لماذا يصعب الحصول على بيانات Instagram؟
ثلاثة عوائق تقف في الطريق:
- الواجهة الرسمية تغطي حساباتك أنت فقط. صُممت واجهات Instagram من Meta للحسابات الاحترافية التي تديرها. تمنحك Business Discovery حقولًا أساسية عن حسابات الأعمال وصنّاع المحتوى الأخرى، لكنها لا تتيح لمنتجك قراءة أي ملف شخصي عام أو سلاسل التعليقات أو منشورات الوسوم.
- التصفح دون تسجيل دخول مقيّد بشدة. يعرض Instagram شاشة تسجيل الدخول بعد بضع صفحات، ويفرض حدودًا صارمة على الزيارات المجهولة، وتتغير نقاط النهاية الداخلية التي يستخدمها تطبيق الويب دون إشعار.
- البيانات متفرقة. لكلٍّ من المقطع القصير والمنشور متعدد الصور والصورة المفردة بنية مختلفة، وتتوزع الأعداد والتعليقات النصية والصوت في أماكن مختلفة بحسب نقطة النهاية التي أعادتها.
إليك مقارنة بين الخيارات المعتادة:
| الطريقة | ملفات شخصية عامة لا تديرها | التعليقات والوسوم | الصيانة |
|---|---|---|---|
| Instagram Graph API | محدودة (Business Discovery) | وسائطك أنت فقط | قليلة، لكنها تتطلب مراجعة التطبيق |
| أداة جمع بيانات تبنيها بنفسك | نعم | نعم | كبيرة: تسجيل دخول، وخوادم وسيطة، ومحللات تتعطل |
| واجهة API لجمع البيانات (crawlfeed) | نعم | نعم | لا شيء من جهتك |
يتبع باقي هذا الدليل الطريقة الأخيرة.
ما بيانات Instagram التي يمكنك الحصول عليها؟
كل الطلبات أدناه متاحة على crawlfeed اليوم. يُولَّد الجدول من فهرس الواجهة نفسه، لذا فنقاط النهاية والأسعار هي بالضبط ما ستدفعه:
| العملية | نقطة النهاية | المُعاملات المطلوبة | الرصيد |
|---|---|---|---|
| الملف الشخصي | /v1/instagram/profile | handle | 1 |
| المنشورات | /v1/instagram/posts | handle | 1 |
| منشور | /v1/instagram/post | id | 1 |
| التعليقات | /v1/instagram/comments | post_id | 1 |
| البحث | /v1/instagram/search | q | 1 |
| الحسابات المرتبطة | /v1/instagram/linked-profiles | handle | 10 |
| المقاطع القصيرة | /v1/instagram/reels | handle | 1 |
| المنشورات المُشار فيها | /v1/instagram/tagged | handle | 1 |
| الوسم | /v1/instagram/hashtag | tag | 1 |
| الرائج | /v1/instagram/trending | — | 1 |
| النص المفرّغ | /v1/instagram/transcript | id | 1 |
| الملخص | /v1/instagram/summary | id | 4 |
| الردود | /v1/instagram/replies | post_id, comment_id | 1 |
| البحث في المنشورات | /v1/instagram/search/posts | q | 1 |
| البحث في الحسابات | /v1/instagram/search/profiles | q | 1 |
| الموضوع | /v1/instagram/topic | q | 1 |
| المجموعات | /v1/instagram/collections | handle | 1 |
| منشورات المجموعة | /v1/instagram/collection/posts | id | 1 |
| منشورات تستخدم مقطعًا صوتيًا | /v1/instagram/track/posts | id | 1 |
تعود كل البيانات بالأنواع الموحّدة في crawlfeed (Profile وPost وComment وغيرها)، وهي نفسها على كل المنصات الـ26.
احصل على ملف شخصي من Instagram
تحتاج إلى مفتاح API (تحصل الحسابات الجديدة على 100 رصيد مجاني) واسم المستخدم دون @:
curl -G https://api.crawlfeed.dev/v1/instagram/profile \
-H "Authorization: Bearer $CRAWLFEED_KEY" \
--data-urlencode "handle=natgeo"الاستجابة كائن Profile داخل الغلاف المعتاد. بعد الاختصار، ومع أرقام توضيحية، تبدو هكذا:
{
"data": {
"platform": "instagram",
"handle": "natgeo",
"display_name": "National Geographic",
"verified": true,
"followers": 1234567,
"following": 123,
"posts_count": 12345,
"bio": "…",
"links": ["…"]
},
"meta": { "credits_used": 1, "credits_remaining": 99, "cache": "MISS", "data_age_s": 0 }
}يكلّف الملف الشخصي رصيد واحد. الأعداد أرقام دائمًا، والحقل الذي لا يكشفه Instagram يعود بالقيمة null بدل أن يختفي، فلا تحتاج شيفرتك إلى معالجة خاصة لكل حساب.
احصل على منشورات حساب على Instagram
تعيد /v1/instagram/posts أحدث منشورات الحساب، من الأحدث إلى الأقدم، صفحةً في كل طلب:
curl -G https://api.crawlfeed.dev/v1/instagram/posts \
-H "Authorization: Bearer $CRAWLFEED_KEY" \
--data-urlencode "handle=natgeo"كل عنصر كائن Post يحتوي على text (التعليق النصي للمنشور)، وcreated_at، وmedia (عنصر لكل صورة أو فيديو، فيه type وurl وthumbnail_url وduration_s)، وengagement (likes وcomments وviews وغيرها)، وhashtags، وmentions، وis_ad. أما المنشورات متعددة الصور فتحتوي ببساطة على أكثر من عنصر في media.
للانتقال إلى الصفحة التالية، مرّر قيمة meta.next_cursor في المُعامل cursor. وإذا غاب next_cursor فقد وصلت إلى الصفحة الأخيرة. تُحتسب كل صفحة، فتوقف حين تحصل على ما يكفيك:
import os, requests
posts, cursor = [], None
while True:
params = {"handle": "natgeo", **({"cursor": cursor} if cursor else {})}
res = requests.get(
"https://api.crawlfeed.dev/v1/instagram/posts",
params=params,
headers={"Authorization": f"Bearer {os.environ['CRAWLFEED_KEY']}"},
)
body = res.json()
posts.extend(body["data"])
cursor = body["meta"].get("next_cursor")
if not cursor or len(posts) >= 100:
breakوإذا كنت تعرف مُعرّف المنشور مسبقًا، فإن /v1/instagram/post?id=… تعيد ذلك المنشور وحده.
احصل على التعليقات والردود على منشور
مرّر مُعرّف المنشور في post_id:
curl -G https://api.crawlfeed.dev/v1/instagram/comments \
-H "Authorization: Bearer $CRAWLFEED_KEY" \
--data-urlencode "post_id=<post_id>"يحتوي كل Comment على text، وauthor، وlikes، وcreated_at، وreply_to_id. تتنقل التعليقات بين الصفحات بالطريقة نفسها التي تتنقل بها المنشورات. وللردود تحت تعليق واحد، استدعِ /v1/instagram/replies مع post_id وcomment_id معًا.
المقاطع القصيرة والقصص المميزة والإشارات والصوت
إلى جانب الشبكة الرئيسية، لدى Instagram أقسام خاصة به، ولكلٍّ منها طلبه:
- المقاطع القصيرة (Reels): تعرض
/v1/instagram/reels?handle=…المقاطع القصيرة للحساب وحدها، وهذا عادةً ما تحتاجه لتحليلات الفيديو. - القصص المميزة: تعرض
/v1/instagram/collections?handle=…القصص المميزة للحساب، وتعيد/v1/instagram/collection/posts?id=…العناصر داخل إحداها. - المنشورات المُشار فيها: تعيد
/v1/instagram/tagged?handle=…المنشورات العامة التي أشارت فيها حسابات أخرى إلى ملف شخصي، وهي مفيدة لتتبّع الإشارات إلى العلامة التجارية والمحتوى الذي ينشئه المستخدمون. - الصوت: تعرض
/v1/instagram/track/posts?id=…المقاطع القصيرة التي تستخدم مقطعًا صوتيًا معيّنًا.
curl -G https://api.crawlfeed.dev/v1/instagram/reels \
-H "Authorization: Bearer $CRAWLFEED_KEY" \
--data-urlencode "handle=natgeo"البحث والوسوم والمحتوى الرائج
لاكتشاف المحتوى بدل قراءة حساب تعرفه:
- البحث بالكلمات المفتاحية:
/v1/instagram/search/posts?q=…للمنشورات، و/v1/instagram/search/profiles?q=…للحسابات، و/v1/instagram/search?q=…للبحث العام في المنصة. - الوسوم: تعيد
/v1/instagram/hashtag?tag=…المنشورات التي تستخدم وسمًا. مرّر الوسم دون#. - الرائج: تعيد
/v1/instagram/trendingما هو رائج الآن، مع مُعاملcountryاختياري.
curl -G https://api.crawlfeed.dev/v1/instagram/hashtag \
-H "Authorization: Bearer $CRAWLFEED_KEY" \
--data-urlencode "tag=coffee"كيف تجمع بيانات صفحة Explore في Instagram؟
من يريد جمع بيانات صفحة Explore في Instagram يريد غالبًا أن يعرف ما الرائج الآن، عمومًا أو حول موضوع معيّن. لكن لا يمكن قراءة Explore نفسها مباشرة: فهي مخصّصة لكل حساب مسجّل الدخول، فلا يرى شخصان الصفحة نفسها أبدًا، ولا توجد منها نسخة عامة تُعرض دون تسجيل الدخول.
أما ما يمكنك قراءته فهو الإشارات العامة التي تُبنى منها Explore:
- المقاطع القصيرة الرائجة: تعيد
/v1/instagram/trendingالمقاطع القصيرة الرائجة الآن، مع مُعاملcountryاختياري. وهي الأقرب إلى تبويب المقاطع القصيرة في Explore. - المواضيع: تعيد
/v1/instagram/topic?q=…المنشورات التي يختارها Instagram لموضوع ما، مثلbasketball، مرتّبة من الأكثر رواجًا. وهي تقابل أزرار المواضيع أعلى صفحة Explore. - الوسوم:
/v1/instagram/hashtag?tag=…، كما سبق، لموضوع أضيق.
curl -G https://api.crawlfeed.dev/v1/instagram/topic \
-H "Authorization: Bearer $CRAWLFEED_KEY" \
--data-urlencode "q=basketball"شغّل هذه الطلبات وفق جدول زمني، فتحصل على موجز Explore واحد للجميع، وهذا ما تحتاجه للأبحاث وتتبّع الاتجاهات.
احصل على النص المفرّغ لمقطع قصير
للأبحاث والملخصات، أو لتمرير المقاطع القصيرة إلى نموذج لغوي كبير، غالبًا ما يكون الكلام المنطوق أنفع من التعليق النصي:
curl -G https://api.crawlfeed.dev/v1/instagram/transcript \
-H "Authorization: Bearer $CRAWLFEED_KEY" \
--data-urlencode "id=<id>"يكلّف النص المفرّغ رصيد واحد، ويتضمن التوقيتات حين تتوفر.
تعامل مع الأخطاء وحدّ الطلبات
الأخطاء بصيغة problem details وفق RFC 9457 مع code ثابت، فاعتمد على الرمز لا على نص الرسالة:
| الرمز | معناه | ما العمل |
|---|---|---|
not_found | اسم المستخدم أو المنشور غير موجود، أو أنه خاص | تحقق من المُعرّف، ولا تُعِد المحاولة |
invalid_request | مُعامل مطلوب مفقود أو بصيغة خاطئة | صحّح الطلب |
rate_limited | أرسلت طلبات أسرع من حدّك المسموح | انتظر retry_after ثانية |
insufficient_credits | رصيدك أقل من سعر الطلب | اشحن رصيدك، فلم يُخصم شيء |
platform_unavailable | تعطّل Instagram أو المصدر | أعد المحاولة لاحقًا، فقد استُرد الرصيد |
يُستردّ رصيد الطلب الفاشل تلقائيًا، فلن تدفع مرتين عند إعادة المحاولة أبدًا.
أضف تحليل المشاعر واللهجة العربية
إن كان جمهورك يكتب بالعربية، فأضف enrich=arabic إلى طلب الملف الشخصي أو المنشور أو التعليقات. يحصل كل عنصر على حقل enrichment فيه اللهجة والمشاعر والكيانات والموضوعات، مقابل 3 أرصدة إضافية لكل طلب. وتظهر فائدته الكبرى في سلاسل التعليقات، إذ يحوّل آلاف الردود إلى توزيع واضح للمشاعر.
استخدم بيانات Instagram من Claude أو Cursor
إن كنت تفضّل السؤال على كتابة الشيفرة، فاربط خادم MCP من crawlfeed، وسيحصل مساعدك على الطلبات نفسها كأدوات:
claude mcp add --transport http crawlfeed https://mcp.crawlfeed.dev/mcp \
--header "Authorization: Bearer $CRAWLFEED_KEY"ثم اسأل مثلًا: «أي المقاطع القصيرة العشرين الأخيرة لحساب @natgeo حصد أكثر التعليقات، وماذا كان الناس يقولون؟». تجد طريقة الإعداد لكل عميل في دليلنا إلى MCP.
الخلاصة
لجمع بيانات Instagram العامة، تعفيك واجهة API لجمع البيانات من تسجيل الدخول والخوادم الوسيطة والمحللات التي تتعطل كلما تغيّر تطبيق الويب. مع crawlfeed، يكلّف كل طلب على Instagram رصيدًا واحدًا، والشيفرة نفسها تعمل مع TikTok وYouTube وX وLinkedIn. المرجع الكامل في /docs/platforms/instagram.
أسئلة شائعة
هل جمع بيانات Instagram قانوني؟
جمع البيانات المتاحة للعموم قانوني عمومًا في كثير من الدول، لكنه يتوقف على مكانك، وعلى ما تجمعه، وعلى ما تفعله به. لا يعيد crawlfeed إلا البيانات العامة، ولا يسجّل الدخول إلى أي حساب أبدًا. وإذا خزّنت بيانات شخصية، فأنت مسؤول عن وجود أساس قانوني لذلك وفق قوانين مثل اللائحة العامة لحماية البيانات (GDPR)، وعن تلبية طلبات الحذف.
هل لدى Instagram واجهة API رسمية لهذا؟
صُممت واجهات Instagram من Meta للحسابات الاحترافية التي تديرها أنت. تستطيع ميزة Business Discovery قراءة معلومات عامة أساسية عن حسابات الأعمال وصنّاع المحتوى الأخرى، لكن لا توجد نقطة نهاية رسمية لقراءة أي ملف شخصي عام أو تعليقاته أو منشورات وسم على نطاق واسع، ولهذا تعتمد معظم الفرق على واجهة API لجمع البيانات العامة.
كم تكلّف بيانات Instagram مع crawlfeed؟
يكلّف كل طلب على Instagram رصيدًا واحدًا: ملف شخصي، أو صفحة من المنشورات أو المقاطع القصيرة، أو صفحة من التعليقات، أو صفحة من منشورات وسم، أو بحث، أو نص مفرّغ. تحصل الحسابات الجديدة على رصيد مجاني، ويُستردّ رصيد الطلبات الفاشلة.
ما مدى حداثة البيانات؟
نخزّن الاستجابات تخزينًا مؤقتًا لفترة قصيرة حتى تبقى الطلبات المتكررة سريعة ورخيصة. يخبرك الحقلان meta.cache وmeta.data_age_s بعمر الاستجابة، وإذا أردت البيانات الحديثة مباشرة من المصدر فأضف fresh=true مقابل ضعف السعر.
هل يمكن جمع بيانات صفحة Explore في Instagram؟
ليس بصورتها المعروفة: صفحة Explore مخصّصة لكل حساب مسجّل الدخول، فلا توجد صفحة Explore عامة واحدة يمكن قراءتها. والبدائل العامة هي المقاطع القصيرة الرائجة (/v1/instagram/trending)، والمنشورات التي يختارها Instagram لموضوع ما (/v1/instagram/topic)، ومنشورات الوسوم (/v1/instagram/hashtag)، وهي معًا تغطي ما تُستخدم له Explore عادةً.
هل يمكنني الحصول على بيانات من حسابات Instagram الخاصة؟
لا. لا يعيد crawlfeed إلا ما يستطيع أي شخص رؤيته دون تسجيل الدخول. محتوى الحسابات الخاصة غير متاح: تفشل هذه الطلبات بالخطأ not_found، ويُستردّ رصيد الطلبات الفاشلة.
جرّبه على بياناتك
كل الأمثلة أعلاه تعمل كما هي. تحصل الحسابات الجديدة على 100 رصيد مجاني، دون بطاقة دفع.
احصل على مفتاح API