Spaces:
Running
Running
Commit History
12 days ago
-
Classify RTMPS filter timeouts as output failures Running
Verified signatureKeep YouTube output timeouts on the ingest-recovery path instead of switching a healthy TikTok FLV source to HLS.1057ee9
17 days ago
-
v2.45: port dual ingest and probed canvas fixes
Arena.ai Agent7ea6aba
18 days ago
-
v2.42 start supervisor: recover a stuck YouTube start by restarting the sender (fresh dual ingest) after 150s unconfirmed, max 3 attempts
Verified signaturec343d8e -
v2.42 start supervisor: recover a stuck YouTube start by restarting the sender (fresh dual ingest) after 150s unconfirmed, max 3 attempts
Verified signature16b307d
19 days ago
-
v2.41 dual simultaneous YouTube ingest (primary+backup tee fan-out)
Verified signaturefe77a7a -
relay-v2.40-avfill-splice: apply On-validated A/V fill splice fix fleet-wide
Verified signatureOperator-approved fleet rollout of the On trial: sequence headers stamped 0 no longer consume the splice bias, bridge operations are serialized, fill writes are deadline-bounded, and the watchdog no longer shields a stalled/inflated fill.a9631e4
26 days ago
-
v2.37-fill-span: bound watchdog fill exemption + pump renewal by whole fill episode (fill_until)
Verified signature7983ecc -
Renew stdin write deadline while gap-filling (v2.36-fill-renewal)
Verified signature30b1d21 -
Post-fill/reattach seam credit for write deadline (v2.35-seam-credit)
Verified signatureee814e6 -
Keyframe-gated resume + fill-credit write deadline (v2.34-keyframe-gate)
Verified signaturec201b90 -
Persistent room format lock + fill/swap-aware write deadline (v2.33-format-lock-fillguard)
Verified signature9d0318c -
Exact copy of Reoo88/On @ 826bfe0 (relay-v2.32-gap-filler)
Verified signaturece0ef24
-
Kick: اختيار الطبقة بالجودة الفعلية (BPP) لا بالدقة وحدها
agentسلّم emadpes الحقيقي يعرض 1080p30 بـ943k (BPP 0.015 «ضعيف») بينما 720p30 بـ2379k (BPP 0.086 «جيد») — أي أن اختيار الدقة الأعلى كان ينقل صورة أسوأ. renditions() يَسِم الآن أي طبقة دقتها أعلى وبتريتها أقل من طبقة أدنى منها بـstarved ويُنزلها لذيل السلّم (تبقى احتياطيًا، لا تُحذف). القاعدة نسبية داخل السلّم فلا عتبات مُعايَرة، ولا تتفعّل على سلّم سليم: luchodku وabsi يبقيان 1080p60. بلا بيانات بتريت يعود السلوك للدقة وحدها حرفيًا. أُضيفت حقول bpp وbpp_grade وstarved. تيك توك لم يُمَس. test_kick 58/58 (+8). انحدار مطابق: relay 79/1 · concurrency 25/0 · completion 38/2 · lifecycle 62/4 · watchdog 34/35.f8a629e -
Kick: منع سقوط الجودة من 1080p60 إلى 720p60 تحت الحمل
agentقاعدة _too_heavy تُخفّض أي مرشّح >= 1.44 مليون بكسل متى عمل ناشران أو أكثر. كُتبت لمصادر تيك توك العمودية (720x1280 = 921 ألف بكسل تمرّ، و1440p+ يُرفض)، لكن Kick أفقي: 1920x1080 = 2.07 مليون ⇒ كان يسقط تحت القاعدة دائمًا. القاعدة لا تشتري شيئًا هنا لأن مرشّح Kick يُنسخ بلا إعادة ترميز. مقيسٌ على صورة الإنتاج (ffmpeg 7.1.5، @luchodku 1080p60): 4.9% من نواة = 2.4% من حصة الـ2.0 CPU. فأُعفي مرشّح Kick القابل للنسخ حتى 1080p فقط؛ ما فوقها ومرشّح HEVC (لو ظهر) يبقيان خاضعين للقاعدة. كذلك: 1080p لا يحتاج تسجيل دخول. مقارنة مباشرة على absi وluchodku أظهرت سلّم جودات متطابقًا حرفيًا بكوكيز وبدونها؛ قيد «crisp mode» في واجهة موقع kick.com لا في البث. سلوك تيك توك مُثبَّت بلا تغيير باختبارين صريحين. test_kick 50/50، وبقية المجموعة مطابقة لخط الأساس (lifecycle 62 OK / 4 FAIL).ba80524
-
منع نشر رابط تيك توك مكسور في وصف بثوث Kick
agentقالب الوصف المحفوظ يثبّت https://www.tiktok.com/@{username} يدويًا، و{username} لحساب كيك هو kick:slug ⇒ كان كل بث كيك سينشر علنًا الرابط المكسور https://www.tiktok.com/@kick:emadpes - description_with_links يصحّح الناتج لحسابات كيك فقط (يعمل مع القوالب القائمة بلا إجبار المشغّل على تعطيل الأتمتة لتحرير القالب) - متغيّرات قالب واعية بالمنصة: {handle} {profile_url} {platform} - قاموس التحقق في settings() يعرفها، وإلا رُفض كل قالب يستعملها - index.html يوثّقها ناتج حسابات تيك توك لم يتغيّر بايتًا. test_kick 46/46، وبقية الاختبارات مطابقة لخط الأساس (lifecycle 62 OK / 4 FAIL).2b880ef -
تسمية المنصة في سجل اللوحة لحسابات Kick
agentكان حساب Kick يُسجَّل بـ«تيك توك يقول إن الحساب غير مباشر» لأن رسائل youtube_manager ورثت اسم المنصة الواحدة. الإصلاح سطران في app.log يستبدلان الاسم في النص المعروض فقط. لم تُلمس أي سلسلة حرفية في youtube_manager عمدًا: أربع منها مُطابَقة في is_fault_note وفي test_lifecycle، وتغييرها كان سيكسر منطق استرداد الأعطال. آمن لأن events قائمة عرض محضة تُقرأ في /api/state ولا يُطابقها أي منطق. مُتحقَّق: test_lifecycle 62 OK / 4 FAIL — مطابق حرفيًا لخط الأساس.f107ab9 -
تنظيف مسار Kick: حذف كل ما لا أثر له والإبقاء على ما يغيّر سلوكًا فعليًا
agentخيارات FFmpeg (مُقاسة على ffmpeg 7.1.5): - حذف -http_persistent 1 : افتراضي مفكّك HLS أصلًا true ⇒ بلا أثر - حذف -m3u8_hold_counters 10 : الافتراضي 1000، فكانت قيمتي تُضعف الصلابة لا تزيدها - حذف -max_reload 1000 و -http_multiple 1 : بلا أثر عملي أمام حارس المشروع - إبقاء -seg_max_retry 2 وحده: افتراضي FFmpeg صفر، فأول عثرة CDN كانت تقتل الجلسة كود زائد محذوف: - kick_source.label() بلا أي استعمال - app.source_referer() بلا أي استعمال - حقل viewers الذي لا يقرأه أحد - مرشّح الـmaster 'auto': يناقض قاعدة الجودة الثابتة (قفز ABR = تجميد) وزائد أصلًا لأن كل رصد يجلب روابط طازجة - relay.headers_blob أُعيدت إلى أصلها حرفيًا (تعديلي كان بلا أثر) - youtube_manager يستعمل kick_source.profile_url بدل تكرار تقطيع البادئة النتيجة: relay.py سطران وظيفيان فقط مشروطان بـplatform=='kick'، و12 ملفًا من ملفات المشروع لم تُمس إطلاقًا. test_kick: 48/48 شاملة الحيّ، وبقية الاختبارات مطابقة لخط الأساس حرفيًا.b578771 -
Dockerfile: نسخ kick_source.py و test_kick.py إلى الصورة (قائمة COPY صريحة)
agent594b7d5 -
إضافة Kick: رصد ونقل إلى نفس قناة اليوتيوب بنسخ مباشر بلا إعادة ترميز للصورة
agent- kick_source.py: وحدة مستقلة ترصد قنوات Kick (Amazon IVS) وتُرجع نفس عقد رصد تيك توك - كل جودات Kick هي H.264+AAC ⇒ المسار -c:v copy: صفر إعادة ترميز وصفر حمل CPU - نُسلّم FFmpeg رابط جودة ثابتة لا الـmaster، فلا قفزات ABR تُجمّد صورة يوتيوب - سلّم بديل كامل + روابط طازجة كل رصد + امتصاص عثرة API واحدة - relay.py: صلابة HLS خاصة بكيك معلّقة على platform=='kick' فقط - youtube_manager.py: Referer ووصف الحدث حسب المنصة - مسار تيك توك غير ممسوس: نفس نتائج الاختبارات قبل وبعد - test_kick.py: 40 اختبارًا + اختبار حيّ اختياري عبر FFmpeg8ea1575
-
حارسا الحمل: عودة تلقائية إلى copy بعد 60ث + ترميز متزامن واحد
Verified signature01edec4 -
fix: قراءة واحدة مشتركة للمعالج/الرام من cgroup
Verified signaturec92cb2e -
fix: قراءة واحدة مشتركة للمعالج/الرام من cgroup
Verified signatured2bbc4e
-
full parity with Reoo88/On dd3ad8ef
Verified signature50594d5
-
Stop YouTube app flash: lock first canvas, eval=frame, no copy-recovery.
On deployPK/layout hops pad into the size already latched. Never return to copy on the same event (new SPS). Not a 720 squash.7a47fa3 -
Use Tktktk engine as-is (copy-first, PK matchgop on first canvas).
On deployNo resolution upscale. Same relay as Reoo88/Tktktk ef356f0.d6fd944 -
Lock first YouTube canvas; stop app flash on PK.
On deployDo not reconnect at a new size. Pin the first picture, sticky matchgop, and do not hop back to COPY. Viewers no longer need to force-close the YouTube app.ecb535b
-
v2.12-matchgop: copy-first; on YouTube noData/gopSizeLong switch THIS publisher to same-size closed GOP 2s (not default 720). Cuts live by operator request.
Verified signaturecd90dad -
v2.11: LIGHT→COPY only after 90s stable light + verified copy output; rollback to light if out=0 (do not clear sticky on H264 label)
Verified signature0ed9a41 -
stall watchdog: do not fake last-byte on TikTok reattach; cap swapping skip at SOURCE_STALL_TIMEOUT (measured 40-57s freeze)
Verified signature252aff3
-
Prayer: 0be4ca6 engine; no concurrent cap (MAX=0)
Verified signatureb1e4f60 -
Revert Prayer-Time-Bot to 0be4ca683e2a (user: 0pe4ca6) — H264 FLV copy, no HEVC origin fallthrough
Verified signaturee4951d8 -
Prayer: copy same quality first; transcode at source size never upscale; one-shot match if YouTube GOP rejects copy
Verified signature36f588a -
Prayer: honor YOUTUBE_SEND_MODE=fixed1080; veryfast 1080 so transcode can stay live
Verified signature5c1b0ab -
Prayer: transcode fixed1080 highest quality (2 broadcasters); autoStart so the YouTube event actually goes live
Verified signaturea5c98fd -
Prayer: re-request YouTube live when ingest is healthy but stuck in liveStarting
Verified signaturee57669e -
Keep FFmpeg during liveStarting so YouTube is not a frozen/loading still (restored engine + MAX=5)
Verified signaturef4562c8 -
Restore pre-today engine (daa404f/246dbb4/f6039fb); 5 concurrent relays/events; auto+fixed720 fallback
Verified signature047a82a -
Boot copy-first: do not restore journal force_light after Space rebuild (pegs cpu-basic)
Verified signature0fd88e6 -
Unfreeze: kill copy when out_time frozen 12s; do not reset source timer on reattach HTTP
Verified signature345f857 -
Fix COPY_RECOVERY out=0: 720-class H264 first, 12s zero-output start stall, abort to light after 2 misses
Verified signature1a94051 -
Cap concurrent relays/events at 3 (REAL TESTED copy); LIGHT_MAX remains 1
Verified signature6d288be -
Copy-first architecture: light fallback not fixed720; hysteresis 45s; relay_state in UI; no MediaMTX
Verified signature9c84a2f -
Keep FFmpeg pushing during liveStarting; do not finish a bound event on soft 403 rateLimit
Verified signatureceea684 -
Keep light sticky across H264 and sender recycle; persist force_light on the event
Verified signature25b3b93 -
Hybrid engine: H264 copy first; light ultrafast 1800k GOP 2s only when copy ingest fails (max 1 on cpu-basic)
Verified signature1f5c6f6 -
Keep FFmpeg on TikTok format change: splice into same RTMPS so YouTube does not show loading
Verified signaturef6039fb -
Real YouTube loading fix: never delay copy reconnect once the event is live; dump_extra on H264 copy IDR
Verified signature6f6c26e -
Copy-first: prefer 720-class H264 over 640 blips; retry reattach 3x before killing FFmpeg; cache /health 2s; spawn cooldown
Verified signatured8243b3 -
Copy-first: reattach TikTok into the same FFmpeg on stall/format flap; never auto-transcode on dimension flap
Verified signature1e71f1c -
Copy-first: retry 403 when a YouTube slot frees; restart copy on noData with live source; hide stale FFmpeg errors
Verified signaturef4b8a91