[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6PCBT9865ZZ98M6GTCT9DA5":3,"skill-same:01M6PCBT9865ZZ98M6GTCT9DA5":80},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":15,"categories":16,"keywords":25,"publishedAt":46,"linkOnly":47,"markdownContent":48,"markdownBody":49,"frontMatter":50,"refName":39,"commitSha":55,"skillDirectory":56,"forksCount":13,"repositoryHtmlUrl":57,"repositoryHomepageUrl":6,"ownerHtmlUrl":58,"ownerBlogUrl":6,"ownerDescription":6,"updatedAt":59,"install":60,"resources":73},"01M6PCBT9865ZZ98M6GTCT9DA5","pytest-skill",null,"Generates production-grade pytest tests in Python with fixtures, parametrize, markers, mocking, and conftest patterns. Use when user mentions \"pytest\", \"conftest\", \"@pytest.fixture\", \"@pytest.mark\", \"Python test\".","duc-duy-1612\u002FOnline-Delivery-Systems-Web","duc-duy-1612","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F192231384?v=4","01M6NSDKQQDKVTHZ8DZMZ1VYY6","01M6NSDKW8DDVTQHBT1HBDDJPT",0,"MIT","https:\u002F\u002Fgithub.com\u002Fduc-duy-1612\u002FOnline-Delivery-Systems-Web\u002Fblob\u002Fmain\u002F.agents\u002Fskills_archive\u002Fpytest-skill\u002FSKILL.md",[17,22],{"categoryNo":18,"categoryName":19,"taxonomyType":20,"taxonomyTypeDesc":21},"01JBSEEDCAT000000000000008","测试与质量","SCENARIO","使用场景",{"categoryNo":23,"categoryName":24,"taxonomyType":20,"taxonomyTypeDesc":21},"01JBSEEDCAT000000000000023","Skill与智能体开发",[26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45],"pytest skill","pytest","fixtures","tree","mark","with","lambdatest","mocking","markers","critical","tests","python","fixture","main","community","agent-skills","use","license","test","github","2026-11-10 10:12:30",false,"---\nname: pytest-skill\ndescription: \"Generates production-grade pytest tests in Python with fixtures, parametrize, markers, mocking, and conftest patterns. Use when user mentions \\\"pytest\\\", \\\"conftest\\\", \\\"@pytest.fixture\\\", \\\"@pytest.mark\\\", \\\"Python test\\\".\"\nrisk: critical\nsource: https:\u002F\u002Fgithub.com\u002FLambdaTest\u002Fagent-skills\u002Ftree\u002Fmain\u002Fpytest-skill\nsource_repo: LambdaTest\u002Fagent-skills\nsource_type: community\ndate_added: 2026-07-01\nlicense: MIT\nlicense_source: https:\u002F\u002Fgithub.com\u002FLambdaTest\u002Fagent-skills\u002Fblob\u002Fmain\u002FLICENSE\n---\n\n# Pytest Testing Skill\n## When to Use\n\nUse this skill when you need generates production-grade pytest tests in Python with fixtures, parametrize, markers, mocking, and conftest patterns. Use when user mentions \"pytest\", \"conftest\", \"@pytest.fixture\", \"@pytest.mark\", \"Python test\". Triggers on: \"pytest\", \"conftest\", \"Python test\", \"parametrize\", \"Python...\n\n\n## Core Patterns\n\n### Basic Test\n\n```python\nimport pytest\n\ndef test_addition():\n    assert 2 + 3 == 5\n\ndef test_exception():\n    with pytest.raises(ValueError, match=\"invalid\"):\n        int(\"not_a_number\")\n\nclass TestCalculator:\n    def test_add(self):\n        calc = Calculator()\n        assert calc.add(2, 3) == 5\n\n    def test_divide_by_zero(self):\n        with pytest.raises(ZeroDivisionError):\n            Calculator().divide(10, 0)\n```\n\n### Fixtures\n\n```python\n@pytest.fixture\ndef calculator():\n    return Calculator()\n\n@pytest.fixture\ndef db_connection():\n    conn = Database.connect(\"test_db\")\n    yield conn  # teardown after yield\n    conn.rollback()\n    conn.close()\n\n@pytest.fixture(scope=\"module\")\ndef api_client():\n    client = APIClient(base_url=\"http:\u002F\u002Flocalhost:8000\")\n    yield client\n    client.logout()\n\n# conftest.py - shared fixtures\n@pytest.fixture(autouse=True)\ndef reset_state():\n    State.reset()\n    yield\n    State.cleanup()\n\n# Usage\ndef test_add(calculator):\n    assert calculator.add(2, 3) == 5\n```\n\n### Parametrize\n\n```python\n@pytest.mark.parametrize(\"input,expected\", [\n    (\"hello\", 5), (\"\", 0), (\"pytest\", 6),\n])\ndef test_string_length(input, expected):\n    assert len(input) == expected\n\n@pytest.mark.parametrize(\"a,b,expected\", [\n    (2, 3, 5), (-1, 1, 0), (0, 0, 0),\n])\ndef test_add(calculator, a, b, expected):\n    assert calculator.add(a, b) == expected\n```\n\n### Markers\n\n```python\n@pytest.mark.slow\ndef test_large_dataset(): ...\n\n@pytest.mark.skip(reason=\"Not implemented\")\ndef test_future_feature(): ...\n\n@pytest.mark.skipif(sys.platform == \"win32\", reason=\"Unix only\")\ndef test_unix_permissions(): ...\n\n@pytest.mark.xfail(reason=\"Known bug #123\")\ndef test_known_bug(): ...\n```\n\n### Mocking\n\n```python\nfrom unittest.mock import patch, MagicMock\n\ndef test_send_email(mocker):\n    mock_smtp = mocker.patch(\"myapp.email.smtplib.SMTP\")\n    send_welcome_email(\"user@test.com\")\n    mock_smtp.return_value.sendmail.assert_called_once()\n\ndef test_api_call(mocker):\n    mock_response = mocker.Mock()\n    mock_response.status_code = 200\n    mock_response.json.return_value = {\"users\": [{\"name\": \"Alice\"}]}\n    mocker.patch(\"myapp.service.requests.get\", return_value=mock_response)\n    users = get_users()\n    assert len(users) == 1\n\n@patch(\"myapp.service.database\")\ndef test_save_user(mock_db):\n    mock_db.save.return_value = True\n    assert save_user({\"name\": \"Alice\"}) is True\n    mock_db.save.assert_called_once()\n```\n\n### Assertions\n\n```python\nassert x == y\nassert x != y\nassert x in collection\nassert isinstance(obj, MyClass)\nassert 0.1 + 0.2 == pytest.approx(0.3)\n\nwith pytest.raises(ValueError) as exc_info:\n    raise ValueError(\"bad\")\nassert \"bad\" in str(exc_info.value)\n```\n\n### Anti-Patterns\n\n| Bad | Good | Why |\n|-----|------|-----|\n| `self.assertEqual()` | `assert x == y` | pytest rewrites give better output |\n| Setup in `__init__` | `@pytest.fixture` | Lifecycle management |\n| Global state | Fixture with `yield` | Proper cleanup |\n| Huge test functions | Small focused tests | Easier debugging |\n\n## Quick Reference\n\n| Task | Command |\n|------|---------|\n| Run all | `pytest` |\n| Run file | `pytest tests\u002Ftest_login.py` |\n| Run specific | `pytest tests\u002Ftest_login.py::test_login_success` |\n| By marker | `pytest -m slow` |\n| By keyword | `pytest -k \"login and not invalid\"` |\n| Verbose | `pytest -v` |\n| Stop first fail | `pytest -x` |\n| Last failed | `pytest --lf` |\n| Coverage | `pytest --cov=myapp --cov-report=html` |\n| Parallel | `pytest -n auto` (pytest-xdist) |\n\n## pyproject.toml\n\n```toml\n[tool.pytest.ini_options]\ntestpaths = [\"tests\"]\nmarkers = [\"slow: slow tests\", \"integration: integration tests\"]\naddopts = \"-v --tb=short\"\n```\n\n## Deep Patterns\n\nFor production-grade patterns, see `reference\u002Fplaybook.md`:\n\n| Section | What's Inside |\n|---------|--------------|\n| §1 Config | pytest.ini + pyproject.toml with markers, coverage |\n| §2 Fixtures | Scoping, factories, teardown, autouse, tmp_path |\n| §3 Parametrize | Basic, with IDs, cartesian, indirect |\n| §4 Mocking | pytest-mock, monkeypatch, spies, env vars |\n| §5 Async | pytest-asyncio, async fixtures, async client |\n| §6 Exceptions | pytest.raises(match=), warnings |\n| §7 Markers & Plugins | Custom markers, collection hooks |\n| §8 Class-Based | Nested classes, autouse setup |\n| §9 CI\u002FCD | GitHub Actions matrix, coverage gates |\n| §10 Debugging Table | 10 common problems with fixes |\n| §11 Best Practices | 15-item production checklist |\n\n## Limitations\n\n- Use this skill only when the task clearly matches its upstream source and local project context.\n- Verify commands, generated code, dependencies, credentials, and external service behavior before applying changes.\n- Do not treat examples as a substitute for environment-specific tests, security review, or user approval for destructive or costly actions.\n","# Pytest Testing Skill\n## When to Use\n\nUse this skill when you need generates production-grade pytest tests in Python with fixtures, parametrize, markers, mocking, and conftest patterns. Use when user mentions \"pytest\", \"conftest\", \"@pytest.fixture\", \"@pytest.mark\", \"Python test\". Triggers on: \"pytest\", \"conftest\", \"Python test\", \"parametrize\", \"Python...\n\n\n## Core Patterns\n\n### Basic Test\n\n```python\nimport pytest\n\ndef test_addition():\n    assert 2 + 3 == 5\n\ndef test_exception():\n    with pytest.raises(ValueError, match=\"invalid\"):\n        int(\"not_a_number\")\n\nclass TestCalculator:\n    def test_add(self):\n        calc = Calculator()\n        assert calc.add(2, 3) == 5\n\n    def test_divide_by_zero(self):\n        with pytest.raises(ZeroDivisionError):\n            Calculator().divide(10, 0)\n```\n\n### Fixtures\n\n```python\n@pytest.fixture\ndef calculator():\n    return Calculator()\n\n@pytest.fixture\ndef db_connection():\n    conn = Database.connect(\"test_db\")\n    yield conn  # teardown after yield\n    conn.rollback()\n    conn.close()\n\n@pytest.fixture(scope=\"module\")\ndef api_client():\n    client = APIClient(base_url=\"http:\u002F\u002Flocalhost:8000\")\n    yield client\n    client.logout()\n\n# conftest.py - shared fixtures\n@pytest.fixture(autouse=True)\ndef reset_state():\n    State.reset()\n    yield\n    State.cleanup()\n\n# Usage\ndef test_add(calculator):\n    assert calculator.add(2, 3) == 5\n```\n\n### Parametrize\n\n```python\n@pytest.mark.parametrize(\"input,expected\", [\n    (\"hello\", 5), (\"\", 0), (\"pytest\", 6),\n])\ndef test_string_length(input, expected):\n    assert len(input) == expected\n\n@pytest.mark.parametrize(\"a,b,expected\", [\n    (2, 3, 5), (-1, 1, 0), (0, 0, 0),\n])\ndef test_add(calculator, a, b, expected):\n    assert calculator.add(a, b) == expected\n```\n\n### Markers\n\n```python\n@pytest.mark.slow\ndef test_large_dataset(): ...\n\n@pytest.mark.skip(reason=\"Not implemented\")\ndef test_future_feature(): ...\n\n@pytest.mark.skipif(sys.platform == \"win32\", reason=\"Unix only\")\ndef test_unix_permissions(): ...\n\n@pytest.mark.xfail(reason=\"Known bug #123\")\ndef test_known_bug(): ...\n```\n\n### Mocking\n\n```python\nfrom unittest.mock import patch, MagicMock\n\ndef test_send_email(mocker):\n    mock_smtp = mocker.patch(\"myapp.email.smtplib.SMTP\")\n    send_welcome_email(\"user@test.com\")\n    mock_smtp.return_value.sendmail.assert_called_once()\n\ndef test_api_call(mocker):\n    mock_response = mocker.Mock()\n    mock_response.status_code = 200\n    mock_response.json.return_value = {\"users\": [{\"name\": \"Alice\"}]}\n    mocker.patch(\"myapp.service.requests.get\", return_value=mock_response)\n    users = get_users()\n    assert len(users) == 1\n\n@patch(\"myapp.service.database\")\ndef test_save_user(mock_db):\n    mock_db.save.return_value = True\n    assert save_user({\"name\": \"Alice\"}) is True\n    mock_db.save.assert_called_once()\n```\n\n### Assertions\n\n```python\nassert x == y\nassert x != y\nassert x in collection\nassert isinstance(obj, MyClass)\nassert 0.1 + 0.2 == pytest.approx(0.3)\n\nwith pytest.raises(ValueError) as exc_info:\n    raise ValueError(\"bad\")\nassert \"bad\" in str(exc_info.value)\n```\n\n### Anti-Patterns\n\n| Bad | Good | Why |\n|-----|------|-----|\n| `self.assertEqual()` | `assert x == y` | pytest rewrites give better output |\n| Setup in `__init__` | `@pytest.fixture` | Lifecycle management |\n| Global state | Fixture with `yield` | Proper cleanup |\n| Huge test functions | Small focused tests | Easier debugging |\n\n## Quick Reference\n\n| Task | Command |\n|------|---------|\n| Run all | `pytest` |\n| Run file | `pytest tests\u002Ftest_login.py` |\n| Run specific | `pytest tests\u002Ftest_login.py::test_login_success` |\n| By marker | `pytest -m slow` |\n| By keyword | `pytest -k \"login and not invalid\"` |\n| Verbose | `pytest -v` |\n| Stop first fail | `pytest -x` |\n| Last failed | `pytest --lf` |\n| Coverage | `pytest --cov=myapp --cov-report=html` |\n| Parallel | `pytest -n auto` (pytest-xdist) |\n\n## pyproject.toml\n\n```toml\n[tool.pytest.ini_options]\ntestpaths = [\"tests\"]\nmarkers = [\"slow: slow tests\", \"integration: integration tests\"]\naddopts = \"-v --tb=short\"\n```\n\n## Deep Patterns\n\nFor production-grade patterns, see `reference\u002Fplaybook.md`:\n\n| Section | What's Inside |\n|---------|--------------|\n| §1 Config | pytest.ini + pyproject.toml with markers, coverage |\n| §2 Fixtures | Scoping, factories, teardown, autouse, tmp_path |\n| §3 Parametrize | Basic, with IDs, cartesian, indirect |\n| §4 Mocking | pytest-mock, monkeypatch, spies, env vars |\n| §5 Async | pytest-asyncio, async fixtures, async client |\n| §6 Exceptions | pytest.raises(match=), warnings |\n| §7 Markers & Plugins | Custom markers, collection hooks |\n| §8 Class-Based | Nested classes, autouse setup |\n| §9 CI\u002FCD | GitHub Actions matrix, coverage gates |\n| §10 Debugging Table | 10 common problems with fixes |\n| §11 Best Practices | 15-item production checklist |\n\n## Limitations\n\n- Use this skill only when the task clearly matches its upstream source and local project context.\n- Verify commands, generated code, dependencies, credentials, and external service behavior before applying changes.\n- Do not treat examples as a substitute for environment-specific tests, security review, or user approval for destructive or costly actions.\n",{"name":5,"risk":35,"source":51,"license":14,"date_added":52,"description":7,"source_repo":53,"source_type":40,"license_source":54},"https:\u002F\u002Fgithub.com\u002FLambdaTest\u002Fagent-skills\u002Ftree\u002Fmain\u002Fpytest-skill",1782864000000,"LambdaTest\u002Fagent-skills","https:\u002F\u002Fgithub.com\u002FLambdaTest\u002Fagent-skills\u002Fblob\u002Fmain\u002FLICENSE","f3312ba749561b6159f477dbfc9313c875d40a56",".agents\u002Fskills_archive\u002Fpytest-skill","https:\u002F\u002Fgithub.com\u002Fduc-duy-1612\u002FOnline-Delivery-Systems-Web","https:\u002F\u002Fgithub.com\u002Fduc-duy-1612","2026-10-25 23:50:58",{"source":8,"skillName":5,"commands":61,"prompt":71,"zipAvailable":72},[62,65,68],{"tool":63,"command":64},"npx","npx skills add duc-duy-1612\u002FOnline-Delivery-Systems-Web --skill pytest-skill",{"tool":66,"command":67},"bunx","bunx skills add duc-duy-1612\u002FOnline-Delivery-Systems-Web --skill pytest-skill",{"tool":69,"command":70},"pnpm","pnpm dlx skills add duc-duy-1612\u002FOnline-Delivery-Systems-Web --skill pytest-skill","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fduc-duy-1612\u002FOnline-Delivery-Systems-Web\u002Fblob\u002Fmain\u002F.agents\u002Fskills_archive\u002Fpytest-skill\u002FSKILL.md",true,[74],{"path":75,"resourceType":76,"resourceTypeDesc":77,"sizeBytes":78,"sourceHtmlUrl":79},"reference\u002Fplaybook.md","REFERENCE","参考文档",10967,"https:\u002F\u002Fgithub.com\u002Fduc-duy-1612\u002FOnline-Delivery-Systems-Web\u002Fblob\u002Fmain\u002F.agents\u002Fskills_archive\u002Fpytest-skill\u002Freference\u002Fplaybook.md",[81,107,131,154,182,206],{"skillNo":82,"name":83,"nameZh":6,"description":84,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":85,"categories":86,"keywords":90,"publishedAt":46},"01M6Q0FA5FZ410Z33Z3TFQ4DBA","zero-trust","Implement zero-trust network architecture. Configure identity-based access, micro-segmentation, and continuous verification. Use when implementing modern security architectures.","https:\u002F\u002Fgithub.com\u002Fduc-duy-1612\u002FOnline-Delivery-Systems-Web\u002Fblob\u002Fmain\u002F.agents\u002Fskills_archive\u002Fzero-trust\u002FSKILL.md",[87],{"categoryNo":88,"categoryName":89,"taxonomyType":20,"taxonomyTypeDesc":21},"01JBSEEDCAT000000000000011","运维与部署",[91,92,93,94,95,96,83,97,98,99,100,101,40,39,102,35,103,104,105,106],"ZeRO","trust","zero trust","architecture","assessment","verification","segmentation","devops-security","access","configure","only","active","scope","scripts","relevant","implementing",{"skillNo":108,"name":109,"nameZh":6,"description":110,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":111,"categories":112,"keywords":113,"publishedAt":46},"01M6Q0F1YZJW3KX5FBKEVZ8CV4","zcode-delegate","Delegate coding tasks to the Z.AI ZCode CLI only when the user explicitly requests it, while the orchestrator retains review and landing responsibility.","https:\u002F\u002Fgithub.com\u002Fduc-duy-1612\u002FOnline-Delivery-Systems-Web\u002Fblob\u002Fmain\u002F.agents\u002Fskills_archive\u002Fzcode-delegate\u002FSKILL.md",[],[114,115,116,117,118,119,120,121,122,123,124,125,126,101,127,40,128,129,35,130],"delegate","zcode","zcode delegate","review","cli","orchestration","tasks","run","Bash","model","node","read","orchestrator","files","desktop app","app","agent-orchestration",{"skillNo":132,"name":133,"nameZh":6,"description":134,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":135,"categories":136,"keywords":137,"publishedAt":46},"01M6Q0ETK41VGNMYEXW0T00AJN","youtube-transcript","Fetch YouTube transcripts through DeepAPI or local fallback tooling and save clean text output.","https:\u002F\u002Fgithub.com\u002Fduc-duy-1612\u002FOnline-Delivery-Systems-Web\u002Fblob\u002Fmain\u002F.agents\u002Fskills_archive\u002Fyoutube-transcript\u002FSKILL.md",[],[138,139,140,141,45,142,143,43,144,145,146,147,148,40,39,149,150,151,152,153],"transcript","youtube transcript","youtube","safe","codex","research","https","text","fetch","tooling","clean","local","output","deepapi","youtube transcripts","blob",{"skillNo":155,"name":156,"nameZh":6,"description":157,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":158,"categories":159,"keywords":171,"publishedAt":46},"01M6Q0EPPH2PVMDW40017F8WX0","youtube-transcript-skills","Fetch YouTube video transcripts, search videos\u002Fchannels, browse channels, and extract playlists via the getyoutubetranscript.com API - free tier, no card required.","https:\u002F\u002Fgithub.com\u002Fduc-duy-1612\u002FOnline-Delivery-Systems-Web\u002Fblob\u002Fmain\u002F.agents\u002Fskills_archive\u002Fyoutube-transcript-skills\u002FSKILL.md",[160,163,166],{"categoryNo":161,"categoryName":162,"taxonomyType":20,"taxonomyTypeDesc":21},"01JBSEEDCAT000000000000010","后端与接口",{"categoryNo":164,"categoryName":165,"taxonomyType":20,"taxonomyTypeDesc":21},"01JBSEEDCAT000000000000016","图像与多媒体",{"categoryNo":167,"categoryName":168,"taxonomyType":169,"taxonomyTypeDesc":170},"01JBSEEDCAT000000000000030","开发工程师","PROFESSION","适用职业",[138,139,140,172,141,173,45,142,43,174,175,176,177,146,178,40,39,179,180,181],"youtube transcript skills","gemini","search","api","Video","browse","api-integration","free","card","channels",{"skillNo":183,"name":184,"nameZh":6,"description":185,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":186,"categories":187,"keywords":192,"publishedAt":46},"01M6Q0EAB96PX83W5PTE8A0R8D","youtube-notetaker","Turn YouTube talks into local study notes with slides, transcripts, editable annotations, and a markdown-backed viewer.","https:\u002F\u002Fgithub.com\u002Fduc-duy-1612\u002FOnline-Delivery-Systems-Web\u002Fblob\u002Fmain\u002F.agents\u002Fskills_archive\u002Fyoutube-notetaker\u002FSKILL.md",[188,191],{"categoryNo":189,"categoryName":190,"taxonomyType":20,"taxonomyTypeDesc":21},"01JBSEEDCAT000000000000003","演示文稿",{"categoryNo":164,"categoryName":165,"taxonomyType":20,"taxonomyTypeDesc":21},[140,193,194,118,141,195,196,197,198,43,176,199,200,201,202,39,203,149,204,205],"youtube notetaker","notetaker","workflow","official","notes","code","markdown","slides","annotations","README","study","dair-academy","viewer",{"skillNo":207,"name":208,"nameZh":6,"description":209,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":210,"categories":211,"keywords":213,"publishedAt":46},"01M6Q0E55F0GW5MX48V8HXS8B5","youtube-full","Fetch YouTube transcripts, search videos, browse channels, and extract playlists via TranscriptAPI — no yt-dlp, no Google API key, works from any cloud server.","https:\u002F\u002Fgithub.com\u002Fduc-duy-1612\u002FOnline-Delivery-Systems-Web\u002Fblob\u002Fmain\u002F.agents\u002Fskills_archive\u002Fyoutube-full\u002FSKILL.md",[212],{"categoryNo":161,"categoryName":162,"taxonomyType":20,"taxonomyTypeDesc":21},[214,140,215,216,141,173,174,217,218,175,176,177,146,219,178,40,39,179,220,152],"youtube full","full","google","server","dlp","credits","automatic"]