rednote-skill
Rednote Skill
This skill allows you to fully interact with the Xiaohongshu (Little Red Book) platform. You can search for posts by keyword and return results, extract content from specific notes to structured markdown format, and perform engagement actions like liking, commenting, collecting, following users, and more.
Configuration and Preparation
Requirements
- Python 3.7+
- Playwright (install with
pip install playwright) - Playwright drivers (install with
playwright install) - Configured browser environment
Always DO FIRST
Before using this skill, the system will verify your login status:
python scripts/validate_cookies.py
If the output is True, you have normal access and can proceed with search operations.
If the output is False or the login button is visible, the system will automatically execute the manual login procedure:
python scripts/manual_login.py
The system will launch the login interface in a browser window. You'll need to follow the instructions in the opened browser to complete the login process manually, then close the browser after completion.
Usage Steps
1. Environment Setup
Before using this skill, ensure that:
- The required dependencies are installed (Python 3.7+, Playwright)
- The system will automatically handle the cookie saving via the manual login process when needed
- Login status will be validated automatically using the validation utility
2. Using Search Functions
The skill provides several search and extraction functions:
- Search Notes by Keyword:
python scripts/search_note_by_key_word.py <KEYWORD> [--top_n TOP_N] - Extract Note Content:
python scripts/dump_note.py <NOTE_URL>
3. Using Interaction Functions
The skill provides several interaction functions:
- Like Note:
python scripts/like_note.py <NOTE_URL> - Collect Note:
python scripts/collect_note.py <NOTE_URL> - Comment on Note:
python scripts/comment_note.py <NOTE_URL> <COMMENT_TEXT> - Follow User:
python scripts/follow_user.py <NOTE_URL> - Publish Note:
python scripts/publish_note.py --image-urls <IMG1 [IMG2 ...]> --title <TITLE> --content <CONTENT> --tags <TAG1 [TAG2 ...]> - Validate Login:
python scripts/validate_cookies.py - Manual Login:
python scripts/manual_login.py
4. Complete Workflow
- Validate login status before starting interactions
- Execute desired search functions if you need to find specific notes
- Execute desired interaction functions with proper arguments
- Monitor results for successful completion
Function Descriptions
This skill provides the following functions for searching content on and interacting with the Xiaohongshu platform:
Search Notes (search_note_by_key_word.py)
Purpose: Searches for Xiaohongshu notes using the provided keyword.
Parameters:
keyword(string): The keyword to search for--top_n(integer, optional): Number of return notes (default is 5)
Returns: List of note URLs that match the keyword
Behavior: Launches browser, searches for the keyword on Xiaohongshu, returns matching note URLs.
Extract Note Content (dump_note.py)
Purpose: Extracts specific note content and converts to formatted markdown.
Parameters:
note_url(string): The URL of the note to extract content from
Returns: Structured markdown content including author, title, media, description, tags, and interaction data
Behavior: Launches browser, accesses the note, extracts content and formats to markdown.
Like Note (like_note.py)
Purpose: Likes a specific note on Xiaohongshu using the note URL.
Parameters:
note_url(string): The URL of the note to like
Returns: Success or error message indicating if the like was successful
Behavior: Launches browser, navigates to the note URL, clicks the like button, then closes the browser.
Collect Note (collect_note.py)
Purpose: Collects (saves) a specific note to the user's collection.
Parameters:
note_url(string): The URL of the note to collect
Returns: Success or error message indicating if the collection was successful
Behavior: Launches browser, navigates to the note URL, clicks the collect button, then closes the browser.
Comment on Note (comment_note.py)
Purpose: Adds a comment to a specific note on Xiaohongshu.
Parameters:
note_url(string): The URL of the note to comment oncomment_text(string): The text content of the comment
Returns: Success or error message indicating if the comment was published
Behavior: Launches browser, navigates to the note URL, fills in the comment text, clicks the send button, then closes the browser.
Follow User (follow_user.py)
Purpose: Follows the user who created a specific note by visiting a note URL.
Parameters:
note_url(string): The URL of a note by the user to follow
Returns: Success or error message indicating if the follow action was successful
Behavior: Launches browser, navigates to the note URL, clicks the follow button if available, then closes the browser.
Validate Login Status (validate_cookies.py)
Purpose: Checks if the saved authentication tokens are valid and the user is logged in to Xiaohongshu.
Parameters: None
Returns: Boolean value indicating whether login is successful
Behavior: Launches browser, accesses Xiaohongshu homepage with stored credentials, checks for login state.
Manual Login (manual_login.py)
Purpose: Assists in creating valid authentication cookies by opening the login interface.
Parameters: None
Returns: Success or error message after cookies are saved
Behavior: Launches browser, navigates to Xiaohongshu, allows user to log in manually, then saves cookies to storage file.
Publish Note (publish_note.py)
Purpose: Publishes a new image-text note to the user's Xiaohongshu account with provided content, images, and tags.
Parameters:
--image-urls IMG1 [IMG2 ...]: Paths to one or more image files to upload with the note (required)--title TITLE: The title for the new note (required)--content CONTENT: The main content text for the new note (required)--tags TAG1 [TAG2 ...]: One or more tags to attach to the note (required)
Returns: Success or error message indicating if the note was published successfully
Behavior: Launches browser, navigates to the Xiaohongshu publish page, fills in the note title, content, tags and uploads provided images, then clicks the publish button.
Examples
Basic Search and Content Extraction
# Validate login status
python scripts/validate_cookies.py
# Search for notes about "旅行攻略"
python scripts/search_note_by_key_word.py "旅行攻略" --top_n 3
# Extract content from a specific note
python scripts/dump_note.py "https://www.xiaohongshu.com/explore/some-note-id"
Basic Liking and Collecting
# Like a specific note
python scripts/like_note.py "https://www.xiaohongshu.com/explore/some-note-id"
# Collect a specific note
python scripts/collect_note.py "https://www.xiaohongshu.com/explore/some-note-id"
Commenting on a Note
# Add a comment to a specific note
python scripts/comment_note.py "https://www.xiaohongshu.com/explore/some-note-id" "Beautiful content! Thanks for sharing."
Following a User
# Follow a user based on one of their posts
python scripts/follow_user.py "https://www.xiaohongshu.com/explore/some-note-by-user-id"
Publishing a Note
# Publish a new note with images, title, content, and tags
python scripts/publish_note.py \
--image-urls "/path/to/img1.jpg" "/path/to/img2.jpg" \
--title "My New Post" \
--content "Check out this amazing discovery!" \
--tags "travel" "food" "lifestyle"
Complete User Session
# 1. Validate login
python scripts/validate_cookies.py
# 2. Search for interesting content
python scripts/search_note_by_key_word.py "美食推荐" --top_n 5
# 3. Extract detailed content from a note
python scripts/dump_note.py "https://www.xiaohongshu.com/explore/note1"
# 4. Like interesting content
python scripts/like_note.py "https://www.xiaohongshu.com/explore/note1"
# 5. Collect useful content
python scripts/collect_note.py "https://www.xiaohongshu.com/explore/note2"
# 6. Engage with community
python scripts/comment_note.py "https://www.xiaohongshu.com/explore/note3" "Awesome tutorial!"
# 7. Follow good content creators
python scripts/follow_user.py "https://www.xiaohongshu.com/explore/note-by-creator"
Implementation Guidelines
Best Practices
-
Validate Login First: Login status will be automatically checked using
validate_cookies.pybefore performing any interactions to ensure smooth operations. -
Rate Limiting: To avoid account restrictions, implement appropriate delays between consecutive interactions. Avoid excessive rapid interactions.
-
Error Handling: Check the return values from the functions to ensure operations were successful before proceeding to the next action.
-
User Intent: Only engage with content that matches user interest and preferences. The skill should complement user decisions.
-
Browser State Management: The scripts manage browser opening and closing, so ensure system resources are available for these operations.
Integration Considerations
-
Session Management: The skill maintains session state through cookies stored in
rednote_cookies.json. Ensure this file is properly secured. -
Browser Automation: The skill uses headless browsers for automation. Ensure the system has a compatible browser environment set up.
-
URL Format: The scripts expect properly formatted Xiaohongshu URLs. Ensure URLs are valid before passing to functions.
-
Content Appropriateness: Integrate this skill in a way that ensures interactions are appropriate and align with platform terms of service.
Configuration and Preparation
Advanced Setup
Cookie Management
- The skill stores authentication data in
rednote_cookies.json - This file is created automatically during the manual login process
- For security, protect this cookie file from unauthorized access
Environment Variables
- No specific environment variables are required
- The skill uses the default configuration files in the scripts directory
Prerequisites Verification
Before using the rednote skill, verify:
-
System Setup:
- Python 3.7 or above
- Playwright installed (
pip install playwright) - Browser drivers installed (
playwright install) - Minimum available disk space for browser operation
-
Xiaohongshu Access:
- Ability to access Xiaohongshu.com from your network
- Compliance with Xiaohongshu's terms of service
- Valid Xiaohongshu account credentials
-
Security Setup:
- The system will handle automatic login when needed
- Login status will be confirmed via validation script
- Secured storage for authentication tokens
Troubleshooting
Common Issues
Login Error (❌ 未找到 cookies 文件,请先登录小红书并保存 cookies)
Cause: The rednote_cookies.json file doesn't exist or is not in the correct location.
Solution: The system will automatically execute python scripts/manual_login.py to perform manual login and save cookies. The user just needs to complete the login process in the opened browser window.
Login Session Expired (❌ 未登录小红书,请先登录)
Cause: Authentication tokens have expired or are invalid.
Solution: The system will re-verify login status and may execute python scripts/manual_login.py again to refresh tokens. The user just needs to complete the login process in the opened browser window if prompted.
Page Navigation Issues
Cause: Network connectivity issues or URL format errors. Solution: Verify URL format is correct, ensure internet connection is stable, and check if Xiaohongshu is accessible.
Element Not Found During Interaction
Cause: Xiaohongshu's UI might have changed or the page hasn't loaded completely. Solution: Retry the operation; if the issue persists, check for interface changes or wait before trying again.
Debugging Steps
- Verify Prerequisites: Ensure all requirements are installed and accessible
- Check Login Status: Run the validation script before operations
- Review URL Format: Ensure URLs are properly formatted Xiaohongshu links
- Monitor Browser Behavior: Use non-headless mode to observe the automation process
- Check Storage Files: Verify cookies file exists and is accessible
Performance Considerations
- Browser automation is resource-intensive; ensure system has sufficient memory and CPU
- Network latency may affect operation timing; consider adding delays between operations
- Run validation scripts periodically to confirm stable authentication
Limitations and Considerations
Platform Limitations
- Terms of Service: This skill must be used in compliance with Xiaohongshu's terms of service and community guidelines
- Rate Limiting: Xiaohongshu may impose limits on the number of interactions per time period
- UI Changes: Xiaohongshu may update their interface, which could break element selectors used by the skill
- Geographic Restrictions: Some functionality may be limited based on geographic location
Technical Limitations
- Browser Dependence: The skill relies on browser automation which may be slower than direct API calls
- Stability: Browser automation can be affected by network conditions and site changes
- Resource Usage: Each interaction launches a browser instance, consuming system resources
- Headless Compatibility: Some interactions may work better in non-headless mode
Security Considerations
- Authentication Storage: Authentication credentials are stored in
rednote_cookies.jsonand should be secured - Privacy: Interactions performed with this skill will be visible to other users on Xiaohongshu
- Data Handling: The skill doesn't collect user data beyond session management for interaction
Ethical Considerations
- Authentic Engagement: Use the skill to facilitate genuine engagement with content that users actually find interesting
- Respect Content Creators: Consider the impact of interactions on content creators and their audience
- Anti-Spam Ethics: Avoid using the skill for spam-like behavior or in ways that could harm the platform ecosystem