{"id":3934,"date":"2023-03-06T12:39:58","date_gmt":"2023-03-06T09:39:58","guid":{"rendered":"https:\/\/www.microimpuls.com\/docs\/releases\/smarty\/03-23-adstream-%d0%ba%d0%b0%d0%bc%d0%b5%d1%80%d1%8b-%d0%b1%d0%b5%d0%b7%d0%be%d0%bf%d0%b0%d1%81%d0%bd%d0%be%d1%81%d1%82%d1%8c"},"modified":"2026-01-23T11:04:06","modified_gmt":"2026-01-23T08:04:06","slug":"03-23-adstream-mediahills-cameras","status":"publish","type":"docs","link":"https:\/\/microimpuls.com\/en\/docs\/releases\/smarty\/03-23-adstream-mediahills-cameras","title":{"rendered":"03-23 | 1.92 AdStream, MediaHills, Cameras"},"content":{"rendered":"<p>We\u2019ve already rolled out some major carrier services to Python 3.9, so as part of the update for this release, we suggest you think about it too (we plan to stop supporting Python 2.7 soon). It is better to move with the help of our engineers within the framework of technical support.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">New Advertising Integration from AdStream<\/h3>\n\n\n\n<p>This release revamped the integration with AdStream \u2014 now, ads from this partner come to both channels and movies.<\/p>\n\n\n\n<p>More about how to set up advertising, you can see in our <a href=\"https:\/\/micro.im\/docs\/smarty\/configuring-and-management\/ads\" data-type=\"URL\" data-id=\"https:\/\/micro.im\/docs\/smarty\/configuring-and-management\/ads\">documentation<\/a>For contacts and commercial terms on AdStream, you can contact your manager \ud83d\ude42<\/p>\n\n\n\n<p>The old type of integration has been renamed AdStream (old) and has been left for compatibility.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Updated integration with MediaHills<\/h3>\n\n\n\n<p>In this release, the integration with MediaHills, which was previously carried out in 2016, was revived \ud83d\ude42<\/p>\n\n\n\n<p>Instructions on how to take advantage of integration <a href=\"https:\/\/micro.im\/docs\/smarty\/extra-services-integration\/mediahills\" data-type=\"URL\" data-id=\"https:\/\/micro.im\/docs\/smarty\/extra-services-integration\/mediahills\">here<\/a>.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Files of Archival Records for External Integrations<\/h3>\n\n\n\n<p>In some media platform integrations, it is sometimes necessary to be able to give so-called feeds \u2014 meta information about the service content. In this release, we have added special ways to obtain feeds from archival records.<\/p>\n\n\n\n<p>In order for feeds to appear on the right url, you need to do a few simple steps:<\/p>\n\n\n\n<ol class=\"wp-block-list\"><li>Configure the return of feeds on <a href=\"https:\/\/micro.im\/docs\/smarty\/configuring-and-management\/vod-from-archive-records\" data-type=\"URL\" data-id=\"https:\/\/micro.im\/docs\/smarty\/configuring-and-management\/vod-from-archive-records\">instruction<\/a><\/li><li>Get the feeds at the address <\/li><\/ol>\n\n\n\n<pre id=\"block-aad2b9fd-2f03-4394-ae87-6a6ccb2d9c6f\" class=\"wp-block-preformatted\">http:\/\/smarty.example.com\/tvmiddleware\/record\/feed\/&lt;client_id&gt;<\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">Adminka<\/h3>\n\n\n\n<ul class=\"wp-block-list\"><li>On the page \u00abSelections of content\u00bb added a new filter \u00ab Type of content\u00bb \u2014 with it you can quickly find the right selections when filling the dashboard with tapes.<\/li><li>On the page \u00abAccounts\u00bb added a filter by its deactivation date.<\/li><li>Added a separate set of rights to manage access to the tab \u00abVirtual rates\u00bb.<\/li><li>Added the possibility of mass editing of the depth of the archive recording for channels.<\/li><\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">New options for registration and authorization<\/h3>\n\n\n\n<ul class=\"wp-block-list\"><li>A new option added <code>TVMW_UPDATE_PHONE_NUMBER_ON_REGISTER<\/code>, which when you try to register an account on a device already registered with Smarty, does not create a new account, but adds the specified phone number to the current account.<\/li><li>Added option <code>TVWM_MULTILOGIN_CREATE_DEVICE<\/code> to create devices when logging in from multilogin accounts.<\/li><li><code>TVWM_REBIND_DEVICE_ON_LOGIN<\/code> \u2014 when you put this option in True, the authorization method does not return the error that the device is already linked to another account, but instead unties the device from the old account and binds to the new one.&nbsp;<\/li><\/ul>\n\n\n\n<p>In addition, when authorizing by IP address in Smarty, tied devices are now created.<\/p>\n\n\n\n<p>Full documentation on options <a href=\"https:\/\/micro.im\/docs\/smarty\/configuring-and-management\/smarty-config\" data-type=\"URL\" data-id=\"https:\/\/micro.im\/docs\/smarty\/configuring-and-management\/smarty-config\">here<\/a>.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Security<\/h3>\n\n\n\n<ul class=\"wp-block-list\"><li>In the admin in the section \u00ab General settings Client\u00bb there is a new option \u00ab Check IP address in TVMW API requests with AuthKey\u00bb which includes additional verification of IP address when processing requests with authorization \u2014 if authorization was made from one IP address, and further calls of methods \u2014 from another, subsequent requests from the old IP address will return 403.<\/li><li>Added limit when creating payment transactions \u2014 no more than 3 transactions in 10 minutes.<\/li><li>Added generation of a separate token for <code>preview_url<\/code> into <code>ProgramUrl<\/code>.<\/li><\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Improvement of integrations with START and Premier<\/h3>\n\n\n\n<p>Now integration with START additionally produces the import of photos of actors, as well as refined the import of images for series and screenshots.<\/p>\n\n\n\n<p>As part of the integration with Premier, the import of additional genres for films and TV series was added.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">TVMW API<\/h3>\n\n\n\n<ul class=\"wp-block-list\"><li>Methods <code>ChannelIconList<\/code> and <code>NoAuthportClientChannelList<\/code> input parameters added <code>icon_width<\/code> and <code>icon-height<\/code>.<\/li><li>In method <code>CameraList<\/code> response fields added <code>is_favorited<\/code> and <code>preview_url<\/code>, as well as the ability to filter cameras based on selectivity using the parameter <code>favorited_only<\/code>.<\/li><li>New method added <code>CameraSettingsSet<\/code> to add a camera to your favorites.<\/li><li>In method <code>VideoRatingSet<\/code> modified scale for estimation of c <code>1-5<\/code> before <code>1-10<\/code> <span class=\"has-inline-color has-vivid-green-cyan-color\">#careful compatibility<\/span><\/li><li>In method <code>VideoAction<\/code> removed from the answer unused field <code>result<\/code> <span class=\"has-inline-color has-vivid-green-cyan-color\">#careful compatibility<\/span><\/li><li>In method <code>PortalDashboard VideoList<\/code> added the ability to retrieve elements for the tape \u00abRecently watched movies\u00bb and added new response fields: <code>position<\/code>, <code>position_asset_id<\/code>, <code>duration<\/code>, <code>preview_url<\/code><\/li><li>Methods <code>VideoList<\/code> and <code>No AuthVideoList<\/code> added a new type of sorting \u00ab According to the number of ratings\u00bb, the ability to filter films by time range using parameters <code>year<\/code> and <code>year<\/code> and a new parameter <code>genre<\/code>, which forms a list of films on the principle of combining, rather than intersection of genres<\/li><li>In method <code>CustomerTariffSubscribe<\/code> field <code>try_activate<\/code> for forced activation of the account when connecting the tariff, as well as new response fields signaling the need for payment.<\/li><li>In methods <code>VideoEpisodeDetail<\/code>  and <code>Video EpisodeList<\/code> now in case the episode is not specified <code>preview_url<\/code>, returns preview of the first associated asset<\/li><li>For programs from the method <code>PortalDashboardProgramList<\/code> into <code>preview<\/code> 16:9 is given if it is in the original Epg<\/li><li>In method <code>AccountStatus<\/code> field of response <code>is_active<\/code> (Shows checkbox status \u00abActive\u00bb regardless of connected tariff plans)<\/li><li>In response to method <code>SelectionDetail<\/code> added the position of the program, which stopped when viewing it<\/li><li>Episodes in the method <code>Video EpisodeList<\/code> are now sorted according to the field <code>sort<\/code><\/li><li>Methods <code>Customer TariffList<\/code> and <code>CustomerTariffSubscriptionCost<\/code> now return the full cost of the tariff in case the number of days before the next extension of the account is longer than the tariff period<\/li><li>Method <code>ChannelListLast<\/code> now does not return channels if the user no longer has access to stream services<\/li><li>Added fields <code>icon<\/code> and <code>icon<\/code> methodically <code>GenreList<\/code> and <code>GenreListNoAuth<\/code><\/li><\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Billing API<\/h3>\n\n\n\n<ul class=\"wp-block-list\"><li><span style=\"font-family: -apple-system, BlinkMacSystemFont, &quot;Segoe UI&quot;, Roboto, Oxygen-Sans, Ubuntu, Cantarell, &quot;Helvetica Neue&quot;, sans-serif;\">In response to method <code>AccountCreate<\/code> field <code>account<\/code><\/span><\/li><li><span style=\"font-family: -apple-system, BlinkMacSystemFont, &quot;Segoe UI&quot;, Roboto, Oxygen-Sans, Ubuntu, Cantarell, &quot;Helvetica Neue&quot;, sans-serif;\">In response to method  <code>AccountInfo<\/code> fielded <code>id<\/code> and <code>abonement<\/code><\/span><\/li><li>In response to method <span style=\"font-family: -apple-system, BlinkMacSystemFont, &quot;Segoe UI&quot;, Roboto, Oxygen-Sans, Ubuntu, Cantarell, &quot;Helvetica Neue&quot;, sans-serif;\"><code>AccountList<\/code> a field has been added for each account <code>abonement<\/code><\/span><\/li><li>In method <code>AccountModify<\/code> add-on <code>allowed_device_groups<\/code><\/li><li>Changing tariffs using the Billing API methods is now fixed in the list of actions of subscribers<\/li><\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Content API<\/h3>\n\n\n\n<ul class=\"wp-block-list\"><li>New method added <code>VideoList<\/code> get a list of videos<\/li><li>New method added <code>ChannelList<\/code> get a list of channels<\/li><\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">16:9 broadcast posters from EpgService<\/h3>\n\n\n\n<p>The 4:3 posters age the look of the app interface, so in this release we\u2019ve added an additional 16:9 \u2014 parsing of the program posters; they\u2019ll soon be available in the dashboard of the Futuristic template. <\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"2560\" height=\"1440\" src=\"https:\/\/www.microimpuls.com\/wp-content\/uploads\/2023\/03\/plustv.micro_.im_templates_futuristic_default_index.html_v4445.jpg\" alt=\"\" class=\"wp-image-4031\"\/><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">Other<\/h3>\n\n\n\n<ul class=\"wp-block-list\"><li>Fix the PayPal payment gateway to Python3.<\/li><li>For the localization string <code>payment_comment_with_id<\/code> argumentation <code>amount<\/code>, <code>amount_units<\/code>, <code>ext_id<\/code> (Stripe payment gateway).<\/li><li>Added sending messages to the user when creating a subscriber through the dealer.<\/li><li>Fixed the mechanism of linking the camera to the account for a situation when the subscriber is not connected tariff with the desired streaming service.<\/li><\/ul>","protected":false},"featured_media":0,"parent":3199,"menu_order":10,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_links_to":"","_links_to_target":""},"doc_tag":[],"class_list":["post-3934","docs","type-docs","status-publish","hentry"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v26.7 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>03-23 | 1.92 AdStream, MediaHills, \u041a\u0430\u043c\u0435\u0440\u044b<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/microimpuls.com\/en\/docs\/releases\/smarty\/03-23-adstream-mediahills-cameras\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"03-23 | 1.92 AdStream, MediaHills, \u041a\u0430\u043c\u0435\u0440\u044b\" \/>\n<meta property=\"og:description\" content=\"\u041c\u044b \u0443\u0436\u0435 \u043f\u0435\u0440\u0435\u0432\u0435\u043b\u0438 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043a\u0440\u0443\u043f\u043d\u044b\u0445 \u043e\u043f\u0435\u0440\u0430\u0442\u043e\u0440\u0441\u043a\u0438\u0445 \u0441\u0435\u0440\u0432\u0438\u0441\u043e\u0432 \u043d\u0430 Python 3.9, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0432 \u0440\u0430\u043c\u043a\u0430\u0445 \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u044f \u043d\u0430 \u044d\u0442\u043e\u0442 \u0440\u0435\u043b\u0438\u0437 \u043f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u0435\u043c \u0432\u0430\u043c \u0442\u043e\u0436\u0435 \u043e\u0431 \u044d\u0442\u043e\u043c \u043f\u043e\u0434\u0443\u043c\u0430\u0442\u044c (\u043f\u043b\u0430\u043d\u0438\u0440\u0443\u0435\u043c \u0432 \u0441\u043a\u043e\u0440\u043e\u043c \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u043f\u0435\u0440\u0435\u0441\u0442\u0430\u0442\u044c \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0442\u044c Python 2.7). \u041f\u0435\u0440\u0435\u0435\u0437\u0434 \u043b\u0443\u0447\u0448\u0435 \u043e\u0441\u0443\u0449\u0435\u0441\u0442\u0432\u043b\u044f\u0442\u044c \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u043d\u0430\u0448\u0438\u0445 \u0438\u043d\u0436\u0435\u043d\u0435\u0440\u043e\u0432 \u0432 \u0440\u0430\u043c\u043a\u0430\u0445 \u0442\u0435\u0445\u043d\u0438\u0447\u0435\u0441\u043a\u043e\u0439 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0438. \u041d\u043e\u0432\u0430\u044f \u0438\u043d\u0442\u0435\u0433\u0440\u0430\u0446\u0438\u044f \u0440\u0435\u043a\u043b\u0430\u043c\u044b \u043e\u0442 AdStream \u0412 \u044d\u0442\u043e\u043c \u0440\u0435\u043b\u0438\u0437\u0435 \u043e\u0431\u043d\u043e\u0432\u0438\u043b\u0438 \u0438\u043d\u0442\u0435\u0433\u0440\u0430\u0446\u0438\u044e \u0441 \u0440\u0435\u043a\u043b\u0430\u043c\u043d\u044b\u043c \u043f\u0440\u043e\u0432\u0430\u0439\u0434\u0435\u0440\u043e\u043c [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/microimpuls.com\/en\/docs\/releases\/smarty\/03-23-adstream-mediahills-cameras\/\" \/>\n<meta property=\"og:site_name\" content=\"Microimpuls\" \/>\n<meta property=\"article:modified_time\" content=\"2026-01-23T08:04:06+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.microimpuls.com\/wp-content\/uploads\/2023\/03\/plustv.micro_.im_templates_futuristic_default_index.html_v4445.jpg\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data1\" content=\"1 minute\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/microimpuls.com\/docs\/releases\/smarty\/03-23-adstream-mediahills-cameras\",\"url\":\"https:\/\/microimpuls.com\/docs\/releases\/smarty\/03-23-adstream-mediahills-cameras\",\"name\":\"03-23 | 1.92 AdStream, MediaHills, \u041a\u0430\u043c\u0435\u0440\u044b\",\"isPartOf\":{\"@id\":\"https:\/\/micro.im\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/microimpuls.com\/docs\/releases\/smarty\/03-23-adstream-mediahills-cameras#primaryimage\"},\"image\":{\"@id\":\"https:\/\/microimpuls.com\/docs\/releases\/smarty\/03-23-adstream-mediahills-cameras#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.microimpuls.com\/wp-content\/uploads\/2023\/03\/plustv.micro_.im_templates_futuristic_default_index.html_v4445.jpg\",\"datePublished\":\"2023-03-06T09:39:58+00:00\",\"dateModified\":\"2026-01-23T08:04:06+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/microimpuls.com\/docs\/releases\/smarty\/03-23-adstream-mediahills-cameras#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/microimpuls.com\/docs\/releases\/smarty\/03-23-adstream-mediahills-cameras\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/microimpuls.com\/docs\/releases\/smarty\/03-23-adstream-mediahills-cameras#primaryimage\",\"url\":\"https:\/\/www.microimpuls.com\/wp-content\/uploads\/2023\/03\/plustv.micro_.im_templates_futuristic_default_index.html_v4445.jpg\",\"contentUrl\":\"https:\/\/www.microimpuls.com\/wp-content\/uploads\/2023\/03\/plustv.micro_.im_templates_futuristic_default_index.html_v4445.jpg\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/microimpuls.com\/docs\/releases\/smarty\/03-23-adstream-mediahills-cameras#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"\u0413\u043b\u0430\u0432\u043d\u0430\u044f \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0430\",\"item\":\"https:\/\/micro.im\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Releases\",\"item\":\"https:\/\/microimpuls.com\/docs\/releases\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Smarty\",\"item\":\"https:\/\/microimpuls.com\/docs\/releases\/smarty\"},{\"@type\":\"ListItem\",\"position\":4,\"name\":\"03-23 | 1.92 AdStream, MediaHills, \u041a\u0430\u043c\u0435\u0440\u044b\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/micro.im\/#website\",\"url\":\"https:\/\/micro.im\/\",\"name\":\"Microimpuls\",\"description\":\"\u041a\u043e\u043c\u043f\u043b\u0435\u043a\u0441\u043d\u044b\u0435 \u0440\u0435\u0448\u0435\u043d\u0438\u044f \u0434\u043b\u044f OTT \u0438 IPTV\",\"publisher\":{\"@id\":\"https:\/\/micro.im\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/micro.im\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/micro.im\/#organization\",\"name\":\"Microimpuls\",\"url\":\"https:\/\/micro.im\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/micro.im\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/microimpuls.com\/wp-content\/uploads\/2024\/12\/mi-logo-square-en-black.png\",\"contentUrl\":\"https:\/\/microimpuls.com\/wp-content\/uploads\/2024\/12\/mi-logo-square-en-black.png\",\"width\":208,\"height\":219,\"caption\":\"Microimpuls\"},\"image\":{\"@id\":\"https:\/\/micro.im\/#\/schema\/logo\/image\/\"}}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"03-23 | 1.92 AdStream, MediaHills, Cameras","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/microimpuls.com\/en\/docs\/releases\/smarty\/03-23-adstream-mediahills-cameras\/","og_locale":"en_US","og_type":"article","og_title":"03-23 | 1.92 AdStream, MediaHills, \u041a\u0430\u043c\u0435\u0440\u044b","og_description":"\u041c\u044b \u0443\u0436\u0435 \u043f\u0435\u0440\u0435\u0432\u0435\u043b\u0438 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043a\u0440\u0443\u043f\u043d\u044b\u0445 \u043e\u043f\u0435\u0440\u0430\u0442\u043e\u0440\u0441\u043a\u0438\u0445 \u0441\u0435\u0440\u0432\u0438\u0441\u043e\u0432 \u043d\u0430 Python 3.9, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0432 \u0440\u0430\u043c\u043a\u0430\u0445 \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u044f \u043d\u0430 \u044d\u0442\u043e\u0442 \u0440\u0435\u043b\u0438\u0437 \u043f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u0435\u043c \u0432\u0430\u043c \u0442\u043e\u0436\u0435 \u043e\u0431 \u044d\u0442\u043e\u043c \u043f\u043e\u0434\u0443\u043c\u0430\u0442\u044c (\u043f\u043b\u0430\u043d\u0438\u0440\u0443\u0435\u043c \u0432 \u0441\u043a\u043e\u0440\u043e\u043c \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u043f\u0435\u0440\u0435\u0441\u0442\u0430\u0442\u044c \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0442\u044c Python 2.7). \u041f\u0435\u0440\u0435\u0435\u0437\u0434 \u043b\u0443\u0447\u0448\u0435 \u043e\u0441\u0443\u0449\u0435\u0441\u0442\u0432\u043b\u044f\u0442\u044c \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u043d\u0430\u0448\u0438\u0445 \u0438\u043d\u0436\u0435\u043d\u0435\u0440\u043e\u0432 \u0432 \u0440\u0430\u043c\u043a\u0430\u0445 \u0442\u0435\u0445\u043d\u0438\u0447\u0435\u0441\u043a\u043e\u0439 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0438. \u041d\u043e\u0432\u0430\u044f \u0438\u043d\u0442\u0435\u0433\u0440\u0430\u0446\u0438\u044f \u0440\u0435\u043a\u043b\u0430\u043c\u044b \u043e\u0442 AdStream \u0412 \u044d\u0442\u043e\u043c \u0440\u0435\u043b\u0438\u0437\u0435 \u043e\u0431\u043d\u043e\u0432\u0438\u043b\u0438 \u0438\u043d\u0442\u0435\u0433\u0440\u0430\u0446\u0438\u044e \u0441 \u0440\u0435\u043a\u043b\u0430\u043c\u043d\u044b\u043c \u043f\u0440\u043e\u0432\u0430\u0439\u0434\u0435\u0440\u043e\u043c [&hellip;]","og_url":"https:\/\/microimpuls.com\/en\/docs\/releases\/smarty\/03-23-adstream-mediahills-cameras\/","og_site_name":"Microimpuls","article_modified_time":"2026-01-23T08:04:06+00:00","og_image":[{"url":"https:\/\/www.microimpuls.com\/wp-content\/uploads\/2023\/03\/plustv.micro_.im_templates_futuristic_default_index.html_v4445.jpg","type":"","width":"","height":""}],"twitter_card":"summary_large_image","twitter_misc":{"Est. reading time":"1 minute"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/microimpuls.com\/docs\/releases\/smarty\/03-23-adstream-mediahills-cameras","url":"https:\/\/microimpuls.com\/docs\/releases\/smarty\/03-23-adstream-mediahills-cameras","name":"03-23 | 1.92 AdStream, MediaHills, Cameras","isPartOf":{"@id":"https:\/\/micro.im\/#website"},"primaryImageOfPage":{"@id":"https:\/\/microimpuls.com\/docs\/releases\/smarty\/03-23-adstream-mediahills-cameras#primaryimage"},"image":{"@id":"https:\/\/microimpuls.com\/docs\/releases\/smarty\/03-23-adstream-mediahills-cameras#primaryimage"},"thumbnailUrl":"https:\/\/www.microimpuls.com\/wp-content\/uploads\/2023\/03\/plustv.micro_.im_templates_futuristic_default_index.html_v4445.jpg","datePublished":"2023-03-06T09:39:58+00:00","dateModified":"2026-01-23T08:04:06+00:00","breadcrumb":{"@id":"https:\/\/microimpuls.com\/docs\/releases\/smarty\/03-23-adstream-mediahills-cameras#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/microimpuls.com\/docs\/releases\/smarty\/03-23-adstream-mediahills-cameras"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/microimpuls.com\/docs\/releases\/smarty\/03-23-adstream-mediahills-cameras#primaryimage","url":"https:\/\/www.microimpuls.com\/wp-content\/uploads\/2023\/03\/plustv.micro_.im_templates_futuristic_default_index.html_v4445.jpg","contentUrl":"https:\/\/www.microimpuls.com\/wp-content\/uploads\/2023\/03\/plustv.micro_.im_templates_futuristic_default_index.html_v4445.jpg"},{"@type":"BreadcrumbList","@id":"https:\/\/microimpuls.com\/docs\/releases\/smarty\/03-23-adstream-mediahills-cameras#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"\u0413\u043b\u0430\u0432\u043d\u0430\u044f \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0430","item":"https:\/\/micro.im\/"},{"@type":"ListItem","position":2,"name":"Releases","item":"https:\/\/microimpuls.com\/docs\/releases"},{"@type":"ListItem","position":3,"name":"Smarty","item":"https:\/\/microimpuls.com\/docs\/releases\/smarty"},{"@type":"ListItem","position":4,"name":"03-23 | 1.92 AdStream, MediaHills, \u041a\u0430\u043c\u0435\u0440\u044b"}]},{"@type":"WebSite","@id":"https:\/\/micro.im\/#website","url":"https:\/\/micro.im\/","name":"Microimpulses","description":"Comprehensive solutions for OTT and IPTV","publisher":{"@id":"https:\/\/micro.im\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/micro.im\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/micro.im\/#organization","name":"Microimpulses","url":"https:\/\/micro.im\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/micro.im\/#\/schema\/logo\/image\/","url":"https:\/\/microimpuls.com\/wp-content\/uploads\/2024\/12\/mi-logo-square-en-black.png","contentUrl":"https:\/\/microimpuls.com\/wp-content\/uploads\/2024\/12\/mi-logo-square-en-black.png","width":208,"height":219,"caption":"Microimpuls"},"image":{"@id":"https:\/\/micro.im\/#\/schema\/logo\/image\/"}}]}},"_links":{"self":[{"href":"https:\/\/microimpuls.com\/en\/wp-json\/wp\/v2\/docs\/3934","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/microimpuls.com\/en\/wp-json\/wp\/v2\/docs"}],"about":[{"href":"https:\/\/microimpuls.com\/en\/wp-json\/wp\/v2\/types\/docs"}],"replies":[{"embeddable":true,"href":"https:\/\/microimpuls.com\/en\/wp-json\/wp\/v2\/comments?post=3934"}],"version-history":[{"count":35,"href":"https:\/\/microimpuls.com\/en\/wp-json\/wp\/v2\/docs\/3934\/revisions"}],"predecessor-version":[{"id":4406,"href":"https:\/\/microimpuls.com\/en\/wp-json\/wp\/v2\/docs\/3934\/revisions\/4406"}],"up":[{"embeddable":true,"href":"https:\/\/microimpuls.com\/en\/wp-json\/wp\/v2\/docs\/3199"}],"next":[{"title":"11-22 | 1.90 Flussonic, Twilio, Statistics","link":"https:\/\/microimpuls.com\/en\/docs\/releases\/smarty\/11-22","href":"https:\/\/microimpuls.com\/en\/wp-json\/wp\/v2\/docs\/3717"}],"prev":[{"title":"05-23 | 1.94 START, directors, advertising","link":"https:\/\/microimpuls.com\/en\/docs\/releases\/smarty\/05-23-start-%d1%80%d0%b5%d0%b6%d0%b8%d1%81%d1%81%d1%91%d1%80%d1%8b","href":"https:\/\/microimpuls.com\/en\/wp-json\/wp\/v2\/docs\/4188"}],"wp:attachment":[{"href":"https:\/\/microimpuls.com\/en\/wp-json\/wp\/v2\/media?parent=3934"}],"wp:term":[{"taxonomy":"doc_tag","embeddable":true,"href":"https:\/\/microimpuls.com\/en\/wp-json\/wp\/v2\/doc_tag?post=3934"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}