Repository: Joystream/joystream (language: rust)

Issue:
Add a `IsShort` field to Video metadata indicating whether a video is a short format vertical video or not



Discussion / hints:

Fix patch:
diff --git a/cli/README.md b/cli/README.md
index 7f696659fc..c591085549 100644
--- a/cli/README.md
+++ b/cli/README.md
@@ -26,7 +26,7 @@ $ npm install -g @joystream/cli
 $ joystream-cli COMMAND
 running command...
 $ joystream-cli (-v|--version|version)
-@joystream/cli/1.2.0 darwin-x64 node-v14.16.1
+@joystream/cli/1.4.0 darwin-x64 node-v18.6.0
 $ joystream-cli --help [COMMAND]
 USAGE
   $ joystream-cli COMMAND
@@ -197,7 +197,7 @@ When using the CLI for the first time there are a few common steps you might wan
 - [`joystream-cli working-groups:updateRewardAccount [ADDRESS]`](#joystream-cli-working-groupsupdaterewardaccount-address)
 - [`joystream-cli working-groups:updateRoleAccount [ADDRESS]`](#joystream-cli-working-groupsupdateroleaccount-address)
 - [`joystream-cli working-groups:updateWorkerReward WORKERID NEWREWARD`](#joystream-cli-working-groupsupdateworkerreward-workerid-newreward)
-- [`joystream-cli working-groups:verifyValidator --group=membership MEMBERID`](#joystream-cli-working-groupsverifyvalidator---groupmembership-memberid)
+- [`joystream-cli working-groups:verifyValidator MEMBERID`](#joystream-cli-working-groupsverifyvalidator-memberid)
 
 ## `joystream-cli account:create`
 
@@ -2127,10 +2127,11 @@ OPTIONS
   ment|DeleteComment|PinOrUnpinComment|ModerateComment|BanOrUnbanMemberFromChannel|VideoReactionsPreference|CreateVideoC
   ategory|MakeChannelPayment|AppMetadata|CreateApp|UpdateApp|MemberRemarked|ChannelModeratorRemarked|ChannelOwnerRemarke
   d|PersonMetadata|ProposalsDiscussionPostMetadata|SeriesMetadata|SeasonMetadata|GeoCoordiantes|NodeLocationMetadata|Sto
-  rageBucketOperatorMetadata|DistributionBucketOperatorMetadata|GeographicalArea|DistributionBucketFamilyMetadata|Publis
-  hedBeforeJoystream|License|MediaType|SubtitleMetadata|VideoMetadata|ContentMetadata|OpeningMetadata|UpcomingOpeningMet
-  adata|ApplicationMetadata|WorkingGroupMetadata|SetGroupMetadata|AddUpcomingOpening|RemoveUpcomingOpening|WorkingGroupM
-  etadataAction|ModeratePost|RemarkMetadataAction)
+  rageBucketOperatorMetadata|DistributionBucketOperatorMetadata|GeographicalArea|DistributionBucketFamilyMetadata|Creato
+  rTokenIssuerRemarked|UpdateTokenMetadata|TokenMetadata|Benefit|SaleMetadata|PublishedBeforeJoystream|License|MediaType
+  |SubtitleMetadata|VideoMetadata|ContentMetadata|OpeningMetadata|UpcomingOpeningMetadata|ApplicationMetadata|WorkingGro
+  upMetadata|SetGroupMetadata|AddUpcomingOpening|RemoveUpcomingOpening|WorkingGroupMetadataAction|ModeratePost|RemarkMet
+  adataAction|VerifyValidator)
       Type of the message
 ```
 
@@ -2156,10 +2157,11 @@ OPTIONS
   ment|DeleteComment|PinOrUnpinComment|ModerateComment|BanOrUnbanMemberFromChannel|VideoReactionsPreference|CreateVideoC
   ategory|MakeChannelPayment|AppMetadata|CreateApp|UpdateApp|MemberRemarked|ChannelModeratorRemarked|ChannelOwnerRemarke
   d|PersonMetadata|ProposalsDiscussionPostMetadata|SeriesMetadata|SeasonMetadata|GeoCoordiantes|NodeLocationMetadata|Sto
-  rageBucketOperatorMetadata|DistributionBucketOperatorMetadata|GeographicalArea|DistributionBucketFamilyMetadata|Publis
-  hedBeforeJoystream|License|MediaType|SubtitleMetadata|VideoMetadata|ContentMetadata|OpeningMetadata|UpcomingOpeningMet
-  adata|ApplicationMetadata|WorkingGroupMetadata|SetGroupMetadata|AddUpcomingOpening|RemoveUpcomingOpening|WorkingGroupM
-  etadataAction|ModeratePost|RemarkMetadataAction)
+  rageBucketOperatorMetadata|DistributionBucketOperatorMetadata|GeographicalArea|DistributionBucketFamilyMetadata|Creato
+  rTokenIssuerRemarked|UpdateTokenMetadata|TokenMetadata|Benefit|SaleMetadata|PublishedBeforeJoystream|License|MediaType
+  |SubtitleMetadata|VideoMetadata|ContentMetadata|OpeningMetadata|UpcomingOpeningMetadata|ApplicationMetadata|WorkingGro
+  upMetadata|SetGroupMetadata|AddUpcomingOpening|RemoveUpcomingOpening|WorkingGroupMetadataAction|ModeratePost|RemarkMet
+  adataAction|VerifyValidator)
       Type of the message
 ```
 
@@ -2179,10 +2181,11 @@ OPTIONS
   ment|DeleteComment|PinOrUnpinComment|ModerateComment|BanOrUnbanMemberFromChannel|VideoReactionsPreference|CreateVideoC
   ategory|MakeChannelPayment|AppMetadata|CreateApp|UpdateApp|MemberRemarked|ChannelModeratorRemarked|ChannelOwnerRemarke
   d|PersonMetadata|ProposalsDiscussionPostMetadata|SeriesMetadata|SeasonMetadata|GeoCoordiantes|NodeLocationMetadata|Sto
-  rageBucketOperatorMetadata|DistributionBucketOperatorMetadata|GeographicalArea|DistributionBucketFamilyMetadata|Publis
-  hedBeforeJoystream|License|MediaType|SubtitleMetadata|VideoMetadata|ContentMetadata|OpeningMetadata|UpcomingOpeningMet
-  adata|ApplicationMetadata|WorkingGroupMetadata|SetGroupMetadata|AddUpcomingOpening|RemoveUpcomingOpening|WorkingGroupM
-  etadataAction|ModeratePost|RemarkMetadataAction)
+  rageBucketOperatorMetadata|DistributionBucketOperatorMetadata|GeographicalArea|DistributionBucketFamilyMetadata|Creato
+  rTokenIssuerRemarked|UpdateTokenMetadata|TokenMetadata|Benefit|SaleMetadata|PublishedBeforeJoystream|License|MediaType
+  |SubtitleMetadata|VideoMetadata|ContentMetadata|OpeningMetadata|UpcomingOpeningMetadata|ApplicationMetadata|WorkingGro
+  upMetadata|SetGroupMetadata|AddUpcomingOpening|RemoveUpcomingOpening|WorkingGroupMetadataAction|ModeratePost|RemarkMet
+  adataAction|VerifyValidator)
       Type of the message
 ```
 
@@ -2723,21 +2726,22 @@ OPTIONS
 
 _See code: [src/commands/working-groups/updateWorkerReward.ts](https://github.com/Joystream/joystream/blob/master/cli/src/commands/working-groups/updateWorkerReward.ts)_
 
-## `joystream-cli working-groups:verifyValidator --group=membership MEMBERID`
+## `joystream-cli working-groups:verifyValidator MEMBERID`
 
 Verify or un-verify the membership profile bound to a validator account. Available to membership workers only.
 
 ```
 USAGE
-  $ joystream-cli working-groups:verifyValidator --group=membership MEMBERID
+  $ joystream-cli working-groups:verifyValidator MEMBERID
 
 ARGUMENTS
-  MEMBERID   ID of the membership bound to the validator account.
+  MEMBERID  ID of the membership bound to the validator account.
 
 OPTIONS
-  -g, --group=membership
+  -g, --group=(storageProviders|curators|forum|membership|app|builders|humanResources|marketing|distributors)
       The working group context in which the command should be executed
-      membership is the only valid value for this command.
+      Available values are: storageProviders, curators, forum, membership, app, builders, humanResources, marketing,
+      distributors.
 
   --unverify
       Whether the profile should be un-verified.
diff --git a/cli/package.json b/cli/package.json
index 3c99fe251b..6c699c307c 100644
--- a/cli/package.json
+++ b/cli/package.json
@@ -1,7 +1,7 @@
 {
   "name": "@joystream/cli",
   "description": "Command Line Interface for Joystream community and governance activities",
-  "version": "1.3.0",
+  "version": "1.4.0",
   "author": "Leszek Wiesner",
   "bin": {
     "joystream-cli": "./bin/run"
diff --git a/cli/src/schemas/ContentDirectory.ts b/cli/src/schemas/ContentDirectory.ts
index 72f98fb32c..c8700b8899 100644
--- a/cli/src/schemas/ContentDirectory.ts
+++ b/cli/src/schemas/ContentDirectory.ts
@@ -7,12 +7,12 @@ import {
 import {
   ChannelCreationInputParameters,
   ChannelUpdateInputParameters,
-  VideoInputParameters,
-  VideoCategoryInputParameters,
+  ContentModerationActionNullEnum,
   JsonSchema,
   ModerationPermissionsByLevelInputParameters,
   PropertySchema,
-  ContentModerationActionNullEnum,
+  VideoCategoryInputParameters,
+  VideoInputParameters,
 } from '../Types'
 
 export const VideoCategoryInputSchema: JsonSchema<VideoCategoryInputParameters> = {
@@ -118,6 +118,7 @@ export const VideoInputSchema: JsonSchema<VideoInputParameters> = {
     hasMarketing: { type: 'boolean' },
     isExplicit: { type: 'boolean' },
     isPublic: { type: 'boolean' },
+    isShort: { type: 'boolean' },
     language: { type: 'string' },
     license: {
       type: 'object',
diff --git a/joystreamjs/CHANGELOG.md b/joystreamjs/CHANGELOG.md
index a2f1e245de..0d7b7b8ac9 100644
--- a/joystreamjs/CHANGELOG.md
+++ b/joystreamjs/CHANGELOG.md
@@ -1,3 +1,7 @@
+### 1.7.0
+
+- Update dependency on metadata protobuf to v2.13.0
+
 ### 1.6.0
 
 - rework `util/readBytesFromFile` to support use in browser [#4584](https://github.com/Joystream/joystream/pull/4584)
diff --git a/joystreamjs/package.json b/joystreamjs/package.json
index 62de0509b5..142b54a06e 100644
--- a/joystreamjs/package.json
+++ b/joystreamjs/package.json
@@ -1,6 +1,6 @@
 {
   "name": "@joystream/js",
-  "version": "1.6.3",
+  "version": "1.7.0",
   "license": "GPL-3.0-only",
   "description": "Joystream JS package provides  utilities required to work with Joystream network.",
   "main": "lib/index.js",
@@ -41,7 +41,7 @@
     "generate:all": "yarn generate:schema-typings"
   },
   "dependencies": {
-    "@joystream/metadata-protobuf": "^2.12.0",
+    "@joystream/metadata-protobuf": "^2.13.0",
     "@joystream/types": "^2.0.0",
     "@polkadot/util-crypto": "9.5.1",
     "axios": "^1.2.1",
diff --git a/metadata-protobuf/doc/index.md b/metadata-protobuf/doc/index.md
index c3f779575a..a4ec43d1c0 100644
--- a/metadata-protobuf/doc/index.md
+++ b/metadata-protobuf/doc/index.md
@@ -3,6 +3,13 @@
 
 ## Table of Contents
 
+- [proto/App.proto](#proto/App.proto)
+    - [AppAction](#.AppAction)
+    - [AppActionMetadata](#.AppActionMetadata)
+  
+    - [AppAction.ActionType](#.AppAction.ActionType)
+    - [AppAction.CreatorType](#.AppAction.CreatorType)
+  
 - [proto/Bounty.proto](#proto/Bounty.proto)
     - [BountyMetadata](#.BountyMetadata)
     - [BountyWorkData](#.BountyWorkData)
@@ -34,9 +41,11 @@
     - [MembershipMetadata.ExternalResource.ResourceType](#.MembershipMetadata.ExternalResource.ResourceType)
   
 - [proto/Metaprotocol.proto](#proto/Metaprotocol.proto)
+    - [AppMetadata](#.AppMetadata)
     - [BanOrUnbanMemberFromChannel](#.BanOrUnbanMemberFromChannel)
     - [ChannelModeratorRemarked](#.ChannelModeratorRemarked)
     - [ChannelOwnerRemarked](#.ChannelOwnerRemarked)
+    - [CreateApp](#.CreateApp)
     - [CreateComment](#.CreateComment)
     - [CreateVideoCategory](#.CreateVideoCategory)
     - [DeleteComment](#.DeleteComment)
@@ -47,6 +56,7 @@
     - [PinOrUnpinComment](#.PinOrUnpinComment)
     - [ReactComment](#.ReactComment)
     - [ReactVideo](#.ReactVideo)
+    - [UpdateApp](#.UpdateApp)
     - [VideoReactionsPreference](#.VideoReactionsPreference)
   
     - [BanOrUnbanMemberFromChannel.Option](#.BanOrUnbanMemberFromChannel.Option)
@@ -74,6 +84,13 @@
   
     - [GeographicalArea.Continent](#.GeographicalArea.Continent)
   
+- [proto/Token.proto](#proto/Token.proto)
+    - [Benefit](#.Benefit)
+    - [CreatorTokenIssuerRemarked](#.CreatorTokenIssuerRemarked)
+    - [SaleMetadata](#.SaleMetadata)
+    - [TokenMetadata](#.TokenMetadata)
+    - [UpdateTokenMetadata](#.UpdateTokenMetadata)
+  
 - [proto/Video.proto](#proto/Video.proto)
     - [ContentMetadata](#.ContentMetadata)
     - [License](#.License)
@@ -85,11 +102,14 @@
 - [proto/WorkingGroups.proto](#proto/WorkingGroups.proto)
     - [AddUpcomingOpening](#.AddUpcomingOpening)
     - [ApplicationMetadata](#.ApplicationMetadata)
+    - [ModeratePost](#.ModeratePost)
     - [OpeningMetadata](#.OpeningMetadata)
     - [OpeningMetadata.ApplicationFormQuestion](#.OpeningMetadata.ApplicationFormQuestion)
+    - [RemarkMetadataAction](#.RemarkMetadataAction)
     - [RemoveUpcomingOpening](#.RemoveUpcomingOpening)
     - [SetGroupMetadata](#.SetGroupMetadata)
     - [UpcomingOpeningMetadata](#.UpcomingOpeningMetadata)
+    - [VerifyValidator](#.VerifyValidator)
     - [WorkingGroupMetadata](#.WorkingGroupMetadata)
     - [WorkingGroupMetadataAction](#.WorkingGroupMetadataAction)
   
@@ -99,6 +119,80 @@
 
 
 
+<a name="proto/App.proto"></a>
+<p align="right"><a href="#top">Top</a></p>
+
+## proto/App.proto
+
+
+
+<a name=".AppAction"></a>
+
+### AppAction
+
+
+
+| Field | Type | Label | Description |
+| ----- | ---- | ----- | ----------- |
+| app_id | [string](#string) | required | ID of application |
+| metadata | [bytes](#bytes) | optional | Metadata |
+| raw_action | [bytes](#bytes) | optional | Raw metadata of wrapped action |
+| signature | [bytes](#bytes) | optional | Signature over app commitment |
+
+
+
+
+
+
+<a name=".AppActionMetadata"></a>
+
+### AppActionMetadata
+
+
+
+| Field | Type | Label | Description |
+| ----- | ---- | ----- | ----------- |
+| video_id | [string](#string) | optional | YouTube video ID |
+
+
+
+
+
+ 
+
+
+<a name=".AppAction.ActionType"></a>
+
+### AppAction.ActionType
+
+
+| Name | Number | Description |
+| ---- | ------ | ----------- |
+| CREATE_VIDEO | 0 |  |
+| CREATE_CHANNEL | 1 |  |
+
+
+
+<a name=".AppAction.CreatorType"></a>
+
+### AppAction.CreatorType
+
+
+| Name | Number | Description |
+| ---- | ------ | ----------- |
+| CHANNEL | 0 |  |
+| MEMBER | 1 |  |
+| CURATOR_GROUP | 2 |  |
+
+
+ 
+
+ 
+
+ 
+
+
+
 <a name="proto/Bounty.proto"></a>
 <p align="right"><a href="#top">Top</a></p>
 
@@ -460,6 +554,8 @@ w.r.t the start of the payload would be improbable since the header size won&#39
 | IRC | 8 |  |
 | WECHAT | 9 |  |
 | WHATSAPP | 10 |  |
+| LINKEDIN | 11 |  |
+| GITHUB | 12 |  |
 
 
  
@@ -477,6 +573,31 @@ w.r.t the start of the payload would be improbable since the header size won&#39
 
 
 
+<a name=".AppMetadata"></a>
+
+### AppMetadata
+
+
+
+| Field | Type | Label | Description |
+| ----- | ---- | ----- | ----------- |
+| website_url | [string](#string) | optional | Url where user can read more about the project or company for this app |
+| use_uri | [string](#string) | optional | Url to the app |
+| small_icon | [string](#string) | optional |  |
+| medium_icon | [string](#string) | optional |  |
+| big_icon | [string](#string) | optional |  |
+| one_liner | [string](#string) | optional | Tagline for the app |
+| description | [string](#string) | optional |  |
+| terms_of_service | [string](#string) | optional |  |
+| auth_key | [string](#string) | optional |  |
+| platforms | [string](#string) | repeated | List of platforms on which the app will be available, e.g. [mobile, web, native] |
+| category | [string](#string) | optional | E.g messaging, adult |
+
+
+
+
+
+
 <a name=".BanOrUnbanMemberFromChannel"></a>
 
 ### BanOrUnbanMemberFromChannel
@@ -526,6 +647,22 @@ w.r.t the start of the payload would be improbable since the header size won&#39
 
 
 
+<a name=".CreateApp"></a>
+
+### CreateApp
+
+
+
+| Field | Type | Label | Description |
+| ----- | ---- | ----- | ----------- |
+| name | [string](#string) | required |  |
+| app_metadata | [AppMetadata](#AppMetadata) | optional |  |
+
+
+
+
+
+
 <a name=".CreateComment"></a>
 
 ### CreateComment
@@ -600,8 +737,7 @@ edit comment by author
 | Field | Type | Label | Description |
 | ----- | ---- | ----- | ----------- |
 | rationale | [string](#string) | optional | Reason why payment is being made |
-| video_id | [uint64](#uint64) | optional |  |
-| channel_id | [uint64](#uint64) | optional |  |
+| video_id | [uint64](#uint64) | optional | Other possible contexts, e.g. playlist etc. |
 
 
 
@@ -622,7 +758,9 @@ edit comment by author
 | edit_comment | [EditComment](#EditComment) | optional |  |
 | delete_comment | [DeleteComment](#DeleteComment) | optional |  |
 | create_video_category | [CreateVideoCategory](#CreateVideoCategory) | optional |  |
-| make_channel_payment | [MakeChannelPayment](#MakeChannelPayment) | optional |  |
+| create_app | [CreateApp](#CreateApp) | optional |  |
+| update_app | [UpdateApp](#UpdateApp) | optional |  |
+| make_channel_payment | [MakeChannelPayment](#MakeChannelPayment) | optional | DeleteApp delete_app = 9; |
 
 
 
@@ -694,6 +832,22 @@ reacting, unreacting, and changing reaction to video
 
 
 
+<a name=".UpdateApp"></a>
+
+### UpdateApp
+
+
+
+| Field | Type | Label | Description |
+| ----- | ---- | ----- | ----------- |
+| app_id | [string](#string) | required |  |
+| app_metadata | [AppMetadata](#AppMetadata) | optional |  |
+
+
+
+
+
+
 <a name=".VideoReactionsPreference"></a>
 
 ### VideoReactionsPreference
@@ -1023,6 +1177,108 @@ Reacting again with the same message option will cancel the previous reaction
 
 
 
+<a name="proto/Token.proto"></a>
+<p align="right"><a href="#top">Top</a></p>
+
+## proto/Token.proto
+
+
+
+<a name=".Benefit"></a>
+
+### Benefit
+
+
+
+| Field | Type | Label | Description |
+| ----- | ---- | ----- | ----------- |
+| title | [string](#string) | optional |  |
+| description | [string](#string) | optional |  |
+| emoji | [string](#string) | optional |  |
+| display_order | [uint32](#uint32) | optional |  |
+
+
+
+
+
+
+<a name=".CreatorTokenIssuerRemarked"></a>
+
+### CreatorTokenIssuerRemarked
+
+
+
+| Field | Type | Label | Description |
+| ----- | ---- | ----- | ----------- |
+| update_token_metadata | [UpdateTokenMetadata](#UpdateTokenMetadata) | optional |  |
+
+
+
+
+
+
+<a name=".SaleMetadata"></a>
+
+### SaleMetadata
+
+
+
+| Field | Type | Label | Description |
+| ----- | ---- | ----- | ----------- |
+| terms_and_conditions | [string](#string) | optional |  |
+
+
+
+
+
+
+<a name=".TokenMetadata"></a>
+
+### TokenMetadata
+
+
+
+| Field | Type | Label | Description |
+| ----- | ---- | ----- | ----------- |
+| name | [string](#string) | optional | Title |
+| symbol | [string](#string) | optional | Symbol |
+| description | [string](#string) | optional | token description |
+| avatar_object | [uint32](#uint32) | optional | avatar for token - index into external [assets array](#.Assets) |
+| avatar_uri | [string](#string) | optional | Url to member&#39;s avatar |
+| benefits | [Benefit](#Benefit) | repeated | benefits for tokne |
+| whitelist_application_note | [string](#string) | optional | note for applicant |
+| whitelist_application_apply_link | [string](#string) | optional | link to application process |
+| trailer_video_id | [uint64](#uint64) | optional | runtime id for video trailer |
+
+
+
+
+
+
+<a name=".UpdateTokenMetadata"></a>
+
+### UpdateTokenMetadata
+
+
+
+| Field | Type | Label | Description |
+| ----- | ---- | ----- | ----------- |
+| new_metadata | [TokenMetadata](#TokenMetadata) | optional |  |
+
+
+
+
+
+ 
+
+ 
+
+ 
+
+ 
+
+
+
 <a name="proto/Video.proto"></a>
 <p align="right"><a href="#top">Top</a></p>
 
@@ -1140,6 +1396,7 @@ Publication status before joystream
 | subtitles | [SubtitleMetadata](#SubtitleMetadata) | repeated | Video subtitles |
 | enable_comments | [bool](#bool) | optional | Enable/Disable the comment section |
 | clear_subtitles | [bool](#bool) | optional | Remove all subtitles; since protobuf doesn&#39;t distinguish b/w empty array and null field, simply removing all subtitles by overriding list with an empty array wont work |
+| is_short | [bool](#bool) | optional | Is video a short format, vertical video (e.g. Youtube Shorts, TikTok, Instagram Reels) |
 
 
 
@@ -1192,6 +1449,22 @@ Publication status before joystream
 
 
 
+<a name=".ModeratePost"></a>
+
+### ModeratePost
+
+
+
+| Field | Type | Label | Description |
+| ----- | ---- | ----- | ----------- |
+| post_id | [uint64](#uint64) | required |  |
+| rationale | [string](#string) | required |  |
+
+
+
+
+
+
 <a name=".OpeningMetadata"></a>
 
 ### OpeningMetadata
@@ -1229,6 +1502,22 @@ Publication status before joystream
 
 
 
+<a name=".RemarkMetadataAction"></a>
+
+### RemarkMetadataAction
+
+
+
+| Field | Type | Label | Description |
+| ----- | ---- | ----- | ----------- |
+| moderate_post | [ModeratePost](#ModeratePost) | optional |  |
+| verify_validator | [VerifyValidator](#VerifyValidator) | optional |  |
+
+
+
+
+
+
 <a name=".RemoveUpcomingOpening"></a>
 
 ### RemoveUpcomingOpening
@@ -1277,6 +1566,22 @@ Publication status before joystream
 
 
 
+<a name=".VerifyValidator"></a>
+
+### VerifyValidator
+
+
+
+| Field | Type | Label | Description |
+| ----- | ---- | ----- | ----------- |
+| member_id | [uint64](#uint64) | required |  |
+| is_verified | [bool](#bool) | required |  |
+
+
+
+
+
+
 <a name=".WorkingGroupMetadata"></a>
 
 ### WorkingGroupMetadata
diff --git a/metadata-protobuf/package.json b/metadata-protobuf/package.json
index c2ef24fae2..dcc1043b02 100644
--- a/metadata-protobuf/package.json
+++ b/metadata-protobuf/package.json
@@ -1,6 +1,6 @@
 {
   "name": "@joystream/metadata-protobuf",
-  "version": "2.12.0",
+  "version": "2.13.0",
   "description": "Joystream Metadata Protobuf Library",
   "main": "lib/index.js",
   "types": "lib/index.d.ts",
diff --git a/metadata-protobuf/proto/Video.proto b/metadata-protobuf/proto/Video.proto
index 482ebd1c88..a8856f763d 100644
--- a/metadata-protobuf/proto/Video.proto
+++ b/metadata-protobuf/proto/Video.proto
@@ -104,6 +104,8 @@ message VideoMetadata {
     // overriding list with an empty array wont work
     optional bool clear_subtitles = 19;
 
+    // Is video a short format, vertical video (e.g. Youtube Shorts, TikTok, Instagram Reels)
+    optional bool is_short = 20;
 }
 
 message ContentMetadata {
diff --git a/query-node/CHANGELOG.md b/query-node/CHANGELOG.md
index b8d9eddaea..710056e7e7 100644
--- a/query-node/CHANGELOG.md
+++ b/query-node/CHANGELOG.md
@@ -1,3 +1,7 @@
+### 1.9.0
+
+- Add `isShort` field to `Video` entity. and updated mappings to process/set this filed
+
 ### 1.8.2
 
 - Fix validator profile verification - [#5061](https://github.com/Joystream/joystream/pull/5061)
diff --git a/query-node/mappings/package.json b/query-node/mappings/package.json
index 0724640c02..1878299a31 100644
--- a/query-node/mappings/package.json
+++ b/query-node/mappings/package.json
@@ -1,6 +1,6 @@
 {
   "name": "query-node-mappings",
-  "version": "1.8.2",
+  "version": "1.9.0",
   "description": "Mappings for hydra-processor",
   "main": "lib/src/index.js",
   "license": "MIT",
diff --git a/query-node/mappings/src/content/utils.ts b/query-node/mappings/src/content/utils.ts
index 388440611e..8333665c15 100644
--- a/query-node/mappings/src/content/utils.ts
+++ b/query-node/mappings/src/content/utils.ts
@@ -263,7 +263,7 @@ export async function processVideoMetadata(
 ): Promise<Video> {
   const assets = await getSortedDataObjectsByIds(ctx.store, newAssets)
 
-  integrateMeta(video, meta, ['title', 'description', 'duration', 'hasMarketing', 'isExplicit', 'isPublic'])
+  integrateMeta(video, meta, ['title', 'description', 'duration', 'hasMarketing', 'isExplicit', 'isPublic', 'isShort'])
 
   await processVideoAssets(ctx, assets, video, meta)
 
diff --git a/query-node/package.json b/query-node/package.json
index 296afc72ff..22a2aadbb6 100644
--- a/query-node/package.json
+++ b/query-node/package.json
@@ -1,6 +1,6 @@
 {
   "name": "query-node-root",
-  "version": "1.8.2",
+  "version": "1.9.0",
   "description": "GraphQL server and mappings. Generated with ♥ by Hydra-CLI",
   "scripts": {
     "build": "./build.sh",
diff --git a/query-node/schemas/content.graphql b/query-node/schemas/content.graphql
index d4a2e5e319..3169a06594 100644
--- a/query-node/schemas/content.graphql
+++ b/query-node/schemas/content.graphql
@@ -202,6 +202,9 @@ type Video @entity {
 
   "Video ID coming from YPP"
   ytVideoId: String
+
+  "Whether the video is a short format, vertical video (e.g. Youtube Shorts, TikTok, Instagram Reels)"
+  isShort: Boolean
 }
 
 type VideoMediaMetadata @entity {


Test patch:
diff --git a/tests/network-tests/src/flows/clis/channelsAndVideos.ts b/tests/network-tests/src/flows/clis/channelsAndVideos.ts
index 1575bbeaca..42e722a44d 100644
--- a/tests/network-tests/src/flows/clis/channelsAndVideos.ts
+++ b/tests/network-tests/src/flows/clis/channelsAndVideos.ts
@@ -145,6 +145,7 @@ export default async function createAndUpdateChannel({ api, query, env }: FlowPr
     description: 'This is a test video',
     isPublic: true,
     isExplicit: false,
+    isShort: false,
     hasMarketing: false,
     language: 'en',
     license: {
@@ -169,6 +170,7 @@ export default async function createAndUpdateChannel({ api, query, env }: FlowPr
       assert.equal(video.description, videoInput.description)
       assert.equal(video.isPublic, videoInput.isPublic)
       assert.equal(video.isExplicit, videoInput.isExplicit)
+      assert.equal(video.isShort, videoInput.isShort)
       assert.equal(video.hasMarketing, videoInput.hasMarketing)
       assert.equal(video.language?.iso, videoInput.language)
       assert.equal(video.mediaMetadata?.encoding?.codecName, expectedDetectedMediaType.codecName)
diff --git a/tests/network-tests/src/graphql/queries/content.graphql b/tests/network-tests/src/graphql/queries/content.graphql
index d536db9e8e..b836248c5f 100644
--- a/tests/network-tests/src/graphql/queries/content.graphql
+++ b/tests/network-tests/src/graphql/queries/content.graphql
@@ -166,6 +166,7 @@ fragment VideoFields on Video {
   duration
   isPublic
   isExplicit
+  isShort
   hasMarketing
   ytVideoId
   entryApp {