Vkrss
Generates RSS feed of opened/closed vk.ru (vk.com) wall, global searched opened posts or news feed posts. Features: post filtering (include/exclude by regexp and/or by owner type), ads skipping, automatic title generation, hash-tags extraction as RSS categories, initial author extraction, HTML formatting
Install / Use
/learn @woxcab/VkrssREADME
<a name="eng"></a> Generating RSS Feed for opened or closed wall of user or community (group, public page or event page) on vk.ru
Features
- Generating RSS feed of opened wall: data extraction from different post parts (attachments included) and automatic title generation of RSS items.
- Also generating RSS feed of closed wall if there's access token with offline permissions that's created by user who has access to the closed wall. See more here about user access token creating.
- Generating RSS feed for different opened walls based on global search results.
- Generating RSS news feed of access token's owner.
- Feeding arbitrary number of posts.
- Posts filtering by author: all posts, posts by community/profile owner only or all posts except posts by community/profile owner.
- Posts filtering by signature presence.
- Posts filtering by regular expression (PCRE notation) matching and/or mismatching.
- Optionally ad posts skipping [disabled by default].
- Extracting RSS categories from the post hash tags.
- Optionally HTML formatting of RSS item description: links, images, line breaks [enabled by default].
- HTTPS, SOCKS4, SOCKS4A or SOCKS5 proxy usage is available.
- Each feed item has author name (post signer/publisher or source post signer/publisher if wall post is the repost).
- Customizable repost delimiter with substitutions.
- Optionally video embedding as iframe [disabled by default] in the default HTML mode.
- Optionally VK Donut posts including [disabled by default].
Requirements
- PHP>=5.3 (5.4.X, 5.5.X, 5.6.X, 7.X, 8.X are included)
with installed
mbstring,json,pcre,opensslbundled extensions. - Script prefers the built-in tools for the requests.
If
allow_url_fopenparameter is disabled in the PHP configuration file or interpreter parameters andcURLPHP extension is installed then script usescURLfor the requests. - If you want to use proxy server then
- for HTTPS proxy: either
cURL>=7.10 extension must be installed orallow_url_fopenparameter must be enabled in the PHP configuration file or interpreter parameters; - for SOCKS5 proxy:
cURL>=7.10 extension must be installed; - for SOCKS4 proxy: PHP>=5.3 with
cURL>=7.10 extension is required; - for SOCKS4A proxy: PHP>=5.5.23 or PHP>=5.6.7 (7.X included)
with
cURL>=7.18 extension is required.
- for HTTPS proxy: either
If script returns page with non-200 HTTP status then some problem was occurred: detailed problem information is described in the HTTP status phrase, in the script output and in the server/interpreter logfile.
Parameters
Main index.php script accepts the below GET-parameters.
id and access_token
OR global_search and access_token
OR news_feed and access_token
parameters are required, another parameters are optional.
id, global_search and news_feed parameters cannot be used together.
-
<a name="eng-id"></a> [conditionally required]
idis short name, ID number (community ID is started with-sign) or full identifier (like idXXXX, clubXXXX, publicXXXX, eventXXXX) of profile or community. Only its single wall is processed. Examples of a valid values:123456,id123456— both of these values identify the user profile with ID 123456,-123456,club123456— both of these values identify the group with ID 123456,-123456,public123456— both of these values identify the public page with ID 123456,-123456,event123456— both of these values identify the event with ID 123456,apiclub— value identifies the user profile or community with this short name.
Deprecated
domainandowner_idparameters are allowed and they're identical toid. -
<a name="eng-global-search"></a> [conditionally required]
global_searchis an arbitrary text search query to lookup on all opened walls. It uses internal VK algorithms to search posts that're published by wall's owner. Search results are the same as on this search page. -
<a name="eng-newsfeed"></a> [conditionally required]
news_typetakes one of the values eitherrecent(recent news) orrecommended(VK recommended news). It generates an RSS news feed of the access token's owner that's shown on this news page.News feed contains a walls posts only, the rest of news are ignored (such as new friends of friends, new photos in friends' profiles and so on).
This parameter requires a user' access token with
wallandfriendspermissions.You can filter
recentnews by user, community or custom news list usingnews_sourcesparameter. -
<a name="eng-access-token"></a> [required]
access_tokenis-
either service token that's specified in the app settings (you can create your own standalone application here, app can be off)
Service token allows to fetch only opened for everyone walls.
-
or user access token with
offlineand optionallyvideopermissionsIf you uses
idparameter then user access token allows to fetch both opened and closed walls that are opened for this user.Warning: If user terminates all sessions in the security settings of profile then him access token becomes invalid; in that case, user must create new access token.
If you uses
global_searchthen service and user access tokens give equivalent results, i.e. only opened walls is processed. -
-
<a name="eng-news-sources"></a>
news_sourcesis a comma-separated list ofrecentnews sources.This filter works with
news_type=recentparameter only.Each value has one of the following format:
friendsoutputs news posts of each friend;groupsoutputs news posts of each community from the current user's subscription list;pagesoutputs news posts of each public page from the current user's subscription list;followingoutputs news posts of each following user of the current user;list<list_id>outputs news posts from the personal source' list (created by the current user);<user_id>oru<user_id>outputs news posts by user<user_id>;-<group_id>org<group_id>outputs news posts by community<group_id>.
For example,
news_sources=u1,-2,following,list3outputs recent posts from news feed that's published by userid1, communityclub2, following users or posts from the personal news list with ID3. -
<a name="eng-count"></a>
countis a number of processing posts starting with the latest published post. It's arbitrary amount including more than 100.Default value: 20.
If
owner_only,non_owner_only,include,excludeorskip_adsparameters are passed then amount of posts in the result RSS feed can be less thancountbecause some post can be skipped by these parameters.If
donutis passed then amount of posts in the result RSS feed can be at most2*count(countVK Donut posts +countregular posts).If
idis passed thencountis unlimited, but API requests number can be no more than 5000 requests per day and each request can fetch no more than 100 posts.If
global_searchis passed then maximum value ofcountis 1000, API requests number can be no more than 1000 requests per day, and each request can fetch no more than 200 posts.Delay between requests is equal to 1 sec in order to satisfy VK API limits (no more than 3 requests per second).
-
<a name="eng-repost-delimiter"></a>
repost_delimiteris a string that's placed between parent and child posts; in other words, it's a header of a child post in the repost.Default value is
<hr><hr>if HTML formatting is enabled (default behaviour), otherwise______________________(disable_htmlparameter).This parameter can contain the next special strings that will be substituted in the RSS feed:
{author}that's replaced with first and last names of child post' author in the nominative case if author is a user, otherwise it's replaced with community name in the nominative that's published child post.{author_ins}that's replaced with first and last names of child post' author in the instrumental case if author is a user, otherwise it's replaced with community name in the nominative that's published child post{author_gen}that's replaced with first and last names of child post' author in the genitive case if author is a user, otherwise it's replaced with community name in the nominative that's published child post
Author is child post' signer if it exists, otherwise it's child post' publisher.
E.g., parameter value
<hr>Written by {author}is replaced with:<hr>Written by John Smithif author is user and publisher of child post,<hr>Written by Fun Clubif author is community,<hr>Written by John Smith in Fun Clubif author is user and signer of child post.
Additionally substitutions adds links to user/community pages that're represented as either HTML hyperlinks on author name or plain text in the brackets (if
disable_htmlis enabled). -
<a name="eng-donut"></a>
donutpassing (including absent value) indicates that RSS contains donut
Related Skills
node-connect
334.5kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
frontend-design
82.2kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
openai-whisper-api
334.5kTranscribe audio via OpenAI Audio Transcriptions API (Whisper).
commit-push-pr
82.2kCommit, push, and open a PR
