SkillAgentSearch skills...

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/Vkrss
About this skill

Quality Score

0/100

Supported Platforms

Universal

README

English | Russian


<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, openssl bundled extensions.
  • Script prefers the built-in tools for the requests. If allow_url_fopen parameter is disabled in the PHP configuration file or interpreter parameters and cURL PHP extension is installed then script uses cURL for the requests.
  • If you want to use proxy server then
    • for HTTPS proxy: either cURL>=7.10 extension must be installed or allow_url_fopen parameter 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.

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] id is 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 domain and owner_id parameters are allowed and they're identical to id.

  • <a name="eng-global-search"></a> [conditionally required] global_search is 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_type takes one of the values either recent (recent news) or recommended (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 wall and friends permissions.

    You can filter recent news by user, community or custom news list using news_sources parameter.

  • <a name="eng-access-token"></a> [required] access_token is

    • 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 offline and optionally video permissions

      If you uses id parameter 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_search then service and user access tokens give equivalent results, i.e. only opened walls is processed.

  • <a name="eng-news-sources"></a> news_sources is a comma-separated list of recent news sources.

    This filter works with news_type=recent parameter only.

    Each value has one of the following format:

    • friends outputs news posts of each friend;
    • groups outputs news posts of each community from the current user's subscription list;
    • pages outputs news posts of each public page from the current user's subscription list;
    • following outputs 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> or u<user_id> outputs news posts by user <user_id>;
    • -<group_id> or g<group_id> outputs news posts by community <group_id>.

    For example, news_sources=u1,-2,following,list3 outputs recent posts from news feed that's published by user id1, community club2, following users or posts from the personal news list with ID 3.

  • <a name="eng-count"></a> count is 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, exclude or skip_ads parameters are passed then amount of posts in the result RSS feed can be less than count because some post can be skipped by these parameters.

    If donut is passed then amount of posts in the result RSS feed can be at most 2*count (count VK Donut posts + count regular posts).

    If id is passed then count is 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_search is passed then maximum value of count is 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_delimiter is 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_html parameter).

    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 Smith if author is user and publisher of child post,
    • <hr>Written by Fun Club if author is community,
    • <hr>Written by John Smith in Fun Club if 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_html is enabled).

  • <a name="eng-donut"></a> donut passing (including absent value) indicates that RSS contains donut

Related Skills

View on GitHub
GitHub Stars116
CategoryDevelopment
Updated16h ago
Forks18

Languages

PHP

Security Score

85/100

Audited on Mar 24, 2026

No findings