10 Commits

Author SHA1 Message Date
kevinwatt
0e5a30d10c fix: prevent server hang and output corruption in spawn handling (#23)
- Add process 'error' event handler to catch spawn failures (e.g., yt-dlp not installed)
- Separate stdout/stderr to prevent yt-dlp warnings from corrupting parsed output
- Add try-catch for RegExp construction from YTDLP_SANITIZE_ILLEGAL_CHARS env var
- Add NaN validation for YTDLP_MAX_FILENAME_LENGTH env var
- Sync VERSION constant with package.json (0.8.4)
- Update tests for new output format and null handling
- Add version sync guidance to CLAUDE.md
2026-01-05 01:47:59 +08:00
kevinwatt
47da207c57 docs(cookies): add deno requirement warning for cookie authentication
When using cookie authentication, YouTube uses authenticated API endpoints
that require JavaScript challenge solving. Without deno installed, downloads
will fail with "n challenge solving failed" error.
2025-12-25 04:31:33 +08:00
kevinwatt
910133f382 chore(release): v0.8.3 2025-12-25 04:10:12 +08:00
kevinwatt
7a8fb5f6ff chore(release): v0.8.2 2025-12-25 03:49:13 +08:00
kevinwatt
af0137b2bd feat(search): add uploadDateFilter parameter for date-based filtering
Add optional uploadDateFilter parameter to ytdlp_search_videos tool
that allows filtering search results by upload date using YouTube's
native date filtering (sp parameter).

Options: hour, today, week, month, year
Default: no filter (all dates)

Closes #21
2025-12-25 03:41:14 +08:00
Peter Keffer
bbda4d2857 fix(tests): improve comments test stability and CI compatibility
- Use delete for Python env vars instead of empty string assignment
- Make integration tests opt-in via RUN_INTEGRATION_TESTS=1 env var
- Fix regex null coalescing for author matching in tests
2025-12-25 03:41:14 +08:00
Peter Keffer
2e2888cccc feat(comments): add YouTube video comments extraction tools
Add two new MCP tools for extracting video comments:
- ytdlp_get_video_comments: Extract comments as structured JSON with
  author info, likes, timestamps, and reply threading
- ytdlp_get_video_comments_summary: Get human-readable summary of top comments

Features:
- Support for sorting by "top" (most liked) or "new" (newest first)
- Configurable comment limit (1-100 comments)
- Includes author verification status, pinned comments, and uploader replies
- Comprehensive error handling for disabled comments, private videos, etc.
- Comprehensive test suite
2025-12-25 03:41:14 +08:00
kevinwatt
d7f5ec0f62 refactor: move integration tests to tests/ directory
- Create tests/ directory for integration/manual test scripts
- Move test-mcp.mjs, test-real-video.mjs, test-bilibili.mjs to tests/
- Keep unit tests in src/__tests__/ (Jest convention)
- Update CHANGELOG.md
2025-12-16 04:36:55 +08:00
kevinwatt
6fa13c1204 chore: add Claude Code settings to gitignore and update guidelines
- Add .claude/ directory and CLAUDE.md to .gitignore
- Add development guideline to always update CHANGELOG.md
- Update CHANGELOG.md with unreleased changes
2025-12-16 04:33:53 +08:00
kevinwatt
26b2137751 chore: release v0.7.0 - MCP Best Practices & Quality Improvements
Major release with comprehensive MCP best practices implementation:

 Added:
- Tool name prefixes (ytdlp_) for all 8 tools to avoid naming conflicts
- Zod schema validation with runtime input validation
- Tool annotations (readOnlyHint, destructiveHint, idempotentHint, openWorldHint)
- Response format options (JSON/Markdown) for search tools
- Pagination support with offset parameter
- Character limits (25K standard, 50K for transcripts) with smart truncation
- Actionable error messages with platform-specific guidance

🔧 Improved:
- Comprehensive tool descriptions with usage examples
- Enhanced configuration system with limits
- Better TypeScript type safety
- Professional README with badges and tables

🐛 Fixed:
- JSON parsing issue in metadata truncation
- Maintained valid JSON structure when truncated

🧪 Tested:
-  YouTube platform (Rick Astley video)
-  Bilibili platform (Chinese content)
-  Multi-language support verified
-  All 8 tools tested with real API calls

📖 Documentation:
- Created comprehensive CHANGELOG.md
- Redesigned README.md with professional formatting
- Added migration guide for v0.6.x users

🌍 Platform Support:
- Verified: YouTube, Bilibili
- Theory: 1000+ platforms via yt-dlp
2025-10-19 01:52:22 +08:00