resume if you ask «can js know if you’re behind a proxy ?»
google shows
JavaScript cannot directly access your system’s proxy settings or network configuration due to browser security sandboxing. However, JS can be used to infer that you are behind a proxy through several indirect technical methods:
1. WebRTC IP Leakage
JavaScript can use the WebRTC API (specifically RTCPeerConnection) to bypass your proxy and discover your «real» local or public IP address. If the IP detected via WebRTC differs from the IP making the HTTP request, the site knows a proxy or VPN is in use.
2. Network Latency Analysis (TCP Handshake)
Sites can compare the time it takes for a JavaScript-initiated request (like a WebSocket message) to reach their server against the initial TCP handshake time.
Normal: Handshake and JS request have similar latencies.
Proxy Detect: The TCP handshake happens between the server and the proxy, while the JS request must travel the full distance from your browser, through the proxy, to the server. This discrepancy flags proxy usage.
3. Timezone and Geolocation Mismatches
JS can check your local system time (Intl.DateTimeFormat) and browser language settings. If your system clock is set to London (GMT) but your IP address shows you are in New York (EST), it is a strong indicator of a proxy or location-spoofing tool.
4. Detecting HTTP Headers
While JS itself can’t see the headers of the request it is currently running in, it can make a fetch request to an endpoint (like httpbin.org) that echoes back the headers. Many proxies automatically inject headers like:
X-Forwarded-For
Via
X-Client-IP
5. Advanced Fingerprinting
Modern anti-bot scripts (like Cloudflare or Akamai) use JS to collect dozens of data points about your hardware, fonts, and browser behavior. They compare this «fingerprint» against databases of known proxy data centers. If your browser fingerprint matches a profile typically associated with automated scripts or data center IPs, you will be flagged.
SO, I will be examining those factors, be aware that some are not true at all
Use the bots on same country (time zone) where the IPs you’ll use are located. So do not use say USA IP’s if your Virtual machines are located on say GErmaby
To be a litle more difficult, cause, in emulating cursor (previous article) the target website (so youtube) does not know if any code was injected (as no one code was injected) cause the Bot app emulate the cursor, easy, but, in scrolling, some sources says to use , where N = bla bla
but , say to IA «can js detect browser.ExecuteScriptAsync»
results in
JavaScript cannot directly detect the execution of a browser.ExecuteScriptAsync call because this method is part of the host application’s API (such as WebView2 or CefSharp) and operates outside the standard JavaScript environment.
However, a script can indirectly detect its own injection or «presence» using the following methods:
1. Self-Identification via State
If the host application uses ExecuteScriptAsync to set a global variable, standard JavaScript can check for that variable’s existence.
Since ExecuteScriptAsync is often used to modify the DOM or trigger events, JavaScript can use a MutationObserver to watch for unexpected changes that did not originate from the page’s original scripts.
3. Stack Trace Analysis
In some environments, if a script is executed via an external command, the Error().stack property might reveal a unique trace (e.g., <anonymous> or specific internal wrappers), though this is highly implementation-specific and unreliable for robust detection.
4. Communication Back to Host
The most common way for JavaScript to «acknowledge» an external script execution is to use host-provided bridges like:
In 2026, JavaScript running inside a WebView2 control can detect the fact that a scroll occurred, but it cannot inherently distinguish whether that scroll was caused by a WinForms Document.Window.ScrollTo(0, 0) command or a user’s manual action.
How JS Detects the Scroll
The scroll Event: Whenever the scroll position changes—whether programmatically via C# or manually by a user—the JavaScript scroll event fires.
The scrollend Event: Modern browsers (including the Edge/Chromium engine used by WebView2) support scrollend, which fires when any scroll animation completes.
SO, js , so youtube, cannot detect using this last method, if our app is a bot or not, so OK, camon men
So code, to record a human real scrolls, to put on database
UNFORTUNATELY, WebView2 does not allow to scroll without injecting JS, and the old WebBrowser does, but it is not supported on loading many websites, including youtube, that they reject tyo show, if this old browser is used.
So, 2 opcions, use other control or scroll by moving the mouse (not emulating the scroll wheel), eyy eyyy, wait a moment, am I said Scroll wheel ??? let me checkl if I can control mouse scroll wheel ??
I’ve got this code
ImportsSystem.Runtime.InteropServicesPublicClassForm1PrivateWithEventsTmrAsNewTimerWith {.Interval = 2000}PrivateConstMOUSEEVENTF_WHEELAsInteger = &H800'The amount of movement is specified in mouseData.PrivateConstMOUSEEVENTF_HWHEELAsInteger = &H1000'Not available for 2000 or XP <DllImport("user32.dll", EntryPoint:="mouse_event")> _PrivateSharedSubmouse_event(ByValdwFlagsAsUInteger, ByValdxAsInteger, ByValdyAsInteger, ByValdwDataAsInteger, ByValdwExtraInfoAsUInteger)EndSubPrivateSubForm1_Load(ByValsenderAsSystem.Object, ByValeAsSystem.EventArgs) HandlesMyBase.LoadMe.KeyPreview = TrueTmr.Start()EndSubPrivateSubTmr_Tick(ByValsenderAsObject, ByValeAsSystem.EventArgs) HandlesTmr.TickMouseScroll(False, 10) 'scrolls Down 10 wheel clicks'MouseScroll(True, 1) 'scrollsUp1wheelclickEndSubPrivateSubMouseScroll(ByValupAsBoolean, ByValclicksAsInteger)IfupThenmouse_event(MOUSEEVENTF_WHEEL, 0, 0, (clicks * 120), 0)Elsemouse_event(MOUSEEVENTF_WHEEL, 0, 0, -(clicks * 120), 0)EndIfEndSubEndClass
Does it work ?
And now, how can I record a human natural scroll ? to later port to playback ?
Unfortunately, the current latest version of the WebView21.0.674-prerelease don’t support MouseWhell events too. If is possible to download and run examples from https://github.com/MicrosoftEdge/WebView2Samples.
Hey its get fired but with no url loaded
Lets see over the entire form, no it does not work, soo
We have a problem MIKE
Well not at all, as the Winform allows (yes) to catch the e.delta on scrolls, thaen I can record like if i was on the webview2, just to grab some human movements, them the question is
Will I be able to apply those recorded events (scroll) on the webview2, lets see
YESSSSSS, DONEEE
It was a litle bit trciky, cause, hmnn let me show the code used
following is the unfinished code, but does what it is needed, so to get actions based on 10 ms timer, to get 0 = no scroll, +120 = scrollup or -120 = scroll down
VB.NET Winforms 4.7 CODE
#Region"Imports"ImportsSystem.Security.PolicyImportsMicrosoft.Web.WebView2.WinFormsImportsSystem.Runtime.InteropServicesImportsSystem.Runtime.CompilerServices'Required to load low level Win DLL's#EndRegionPublicClassScrollRecPlay#Region"OS DLL"PrivateConstMOUSEEVENTF_WHEELAsInteger = &H800'The amount of movement is specified in mouseData.PrivateConstMOUSEEVENTF_HWHEELAsInteger = &H1000'Not available for 2000 or XP <DllImport("user32.dll", EntryPoint:="mouse_event")>PrivateSharedSubmouse_event(ByValdwFlagsAsUInteger, ByValdxAsInteger, ByValdyAsInteger, ByValdwDataAsInteger, ByValdwExtraInfoAsUInteger)EndSub#EndRegion#Region"Variables"PrivateWithEventsTiRecAsNewTimerWith {.Interval = 50} : PrivateWithEventsTiPlayAsNewTimerWith {.Interval = 50}PrivateLastScrollDeltaAsInteger#EndRegion#Region"Buttons"PrivateSubbtnLoad_Click(senderAsObject, eAsEventArgs) HandlesbtnLoad.ClickWebView21.Source = NewUri(txtUrl.Text)EndSubPrivateSubbtnRec_Click(senderAsObject, eAsEventArgs) HandlesbtnRec.ClickTxtValues.Text = ""btnRec.Enabled = False : BtnStop.Enabled = TrueTiRec.Enabled = TrueEndSubPrivateSubBtnStop_Click(senderAsObject, eAsEventArgs) HandlesBtnStop.ClickbtnRec.Enabled = True : btnPlay.Enabled = True : TiRec.Enabled = FalseEndSubPrivateSubbtnPlay_Click(senderAsObject, eAsEventArgs) HandlesbtnPlay.Click'mouse_event(MOUSEEVENTF_WHEEL, 0, 0, (clicks * 120), 0)Me.Text = "Be Sure "btnPlay.Enabled = FalseTiPlay.Enabled = TrueEndSub#EndRegion#Region"Timers"PrivateSubTiRec_Tick(ByValsenderAsObject, ByValeAsSystem.EventArgs) HandlesTiRec.TickTxtValues.Text = TxtValues.Text & "," & LastScrollDeltaLastScrollDelta = 0EndSubPrivateSubTiPlay_Tick(ByValsenderAsObject, ByValeAsSystem.EventArgs) HandlesTiPlay.TickMouseScroll(False, 100)Me.Text = "done"EndSub#EndRegion#Region"WebView2"#EndRegion#Region"Functions"PrivateSubMouseScroll(ByValupAsBoolean, ByValclicksAsInteger)IfupThenmouse_event(MOUSEEVENTF_WHEEL, 0, 0, (clicks * 120), 0)Elsemouse_event(MOUSEEVENTF_WHEEL, 0, 0, -(clicks * 120), 0)EndIfEndSub#EndRegionPrivateSubScrollRecPlay_MouseWheel(senderAsObject, eAsMouseEventArgs) HandlesMe.MouseWheelIfNotbtnPlay.Enabled = FalseThen'to not get fired if playback (which will call to scroll)LastScrollDelta = e.DeltaEndIfEndSubEndClass
Note: the minimum effective interval is at 50 ms, so a bit far from those 10 ms but it should be ok, I think.
«create me an html with js, with a timer that, once first click on mouse, records the mouse coordinates (each 10 ms) relatives from the original mouse position just before the frst click on a mouse, in pixels, until a new click mouse happens, and once that, show the coordinates in form of text in a text like say : 0:0 (before or on first click), -10:5, +12:5, 1+22:21, etc where on comma delimiter is a step each 10 ms. Once finished, it will also show the screen size, but not the enite, just the portion of where this code is shown, say 500×350, then on the this click it will reproduce the mouse movement recorded on the screen, on the same screen itself. Be aware thaty if say during 5 seconds the mouse is recorded, then, as each step is recorded each 10 ms, then in this example must show 500 records»
Say brand and model of his device, the resolution (current, as say a dekstop computer can change it, as opposed to a phone), O.S, bla bla, and most important, ¿Can detect JS so youtube, is a device is Bot based, or Human, based ? NO, not at all , if you do it well, but be aware, this will be a bit difficult for you, or not.
see more articles about in this website
be sure to check, human vs bot, to develop your bot, to catch the human
As a User may have a Phone, Tablet, Computer and Labtop
USE [superbots]GO/****** Object: Table [dbo].[BOTS.INSTANCES.DEVICES] Script Date: 17/01/2026 11:19:57 ******/SETANSI_NULLSONGOSETQUOTED_IDENTIFIERONGOCREATETABLE [dbo].[BOTS.INSTANCES.DEVICES]( [Bot.Instance.ID] [bigint] NOTNULL, [Device.ID] [int] NOTNULL, [Bot.Instance.Device.ID] [int] IDENTITY(1,1) NOTNULL, [Bot.Instance.Device.Created] [datetime2](7) NOTNULL,CONSTRAINT [PK_BOTS.INSTANCES.DEVICES] PRIMARYKEYCLUSTERED( [Bot.Instance.Device.ID] ASC)WITH (PAD_INDEX=OFF, STATISTICS_NORECOMPUTE=OFF, IGNORE_DUP_KEY=OFF, ALLOW_ROW_LOCKS=ON, ALLOW_PAGE_LOCKS=ON, OPTIMIZE_FOR_SEQUENTIAL_KEY=OFF) ON [PRIMARY]) ON [PRIMARY]GOALTERTABLE [dbo].[BOTS.INSTANCES.DEVICES] ADDCONSTRAINT [DF_BOTS.INSTANCES.RESOLUTIONS_Bot.Instance.Resolution.IP.Asigned] DEFAULT (getdate()) FOR [Bot.Instance.Device.Created]GOALTERTABLE [dbo].[BOTS.INSTANCES.DEVICES] WITHCHECKADDCONSTRAINT [FK_BOTS.INSTANCES.DEVICES_BOTS.INSTANCES] FOREIGNKEY([Bot.Instance.ID])REFERENCES [dbo].[BOTS.INSTANCES] ([Bot.Instance.ID])GOALTERTABLE [dbo].[BOTS.INSTANCES.DEVICES] CHECKCONSTRAINT [FK_BOTS.INSTANCES.DEVICES_BOTS.INSTANCES]GOEXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'User may have 12 devices,but a maximum of 4 per day per url' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'BOTS.INSTANCES.DEVICES', @level2type=N'COLUMN',@level2name=N'Bot.Instance.Device.ID'GO
BOTS.INSTANCES.DEVICES.IPS
USE [superbots]GO/****** Object: Table [dbo].[BOTS.INSTANCES.DEVICES.IPS] Script Date: 17/01/2026 11:20:52 ******/SETANSI_NULLSONGOSETQUOTED_IDENTIFIERONGOCREATETABLE [dbo].[BOTS.INSTANCES.DEVICES.IPS]( [Bot.Instance.Device.ID] [int] IDENTITY(1,1) NOTNULL, [IP.ID] [int] NOTNULL, [Bot.Instance.Device.IP.ID] [int] NOTNULL, [Bot.Instance.Device.IP.Asigned] [datetime2](7) NOTNULL,CONSTRAINT [PK_BOTS.INSTANCES.DEVICES.IPS] PRIMARYKEYCLUSTERED( [Bot.Instance.Device.IP.ID] ASC)WITH (PAD_INDEX=OFF, STATISTICS_NORECOMPUTE=OFF, IGNORE_DUP_KEY=OFF, ALLOW_ROW_LOCKS=ON, ALLOW_PAGE_LOCKS=ON, OPTIMIZE_FOR_SEQUENTIAL_KEY=OFF) ON [PRIMARY]) ON [PRIMARY]GOALTERTABLE [dbo].[BOTS.INSTANCES.DEVICES.IPS] ADDCONSTRAINT [DF_BOTS.INSTANCES.IPS_Bot.IP.Asigned] DEFAULT (getdate()) FOR [Bot.Instance.Device.IP.Asigned]GOALTERTABLE [dbo].[BOTS.INSTANCES.DEVICES.IPS] WITHCHECKADDCONSTRAINT [FK_BOTS.INSTANCES.DEVICES.IPS_BOTS.INSTANCES.DEVICES] FOREIGNKEY([Bot.Instance.Device.ID])REFERENCES [dbo].[BOTS.INSTANCES.DEVICES] ([Bot.Instance.Device.ID])GOALTERTABLE [dbo].[BOTS.INSTANCES.DEVICES.IPS] CHECKCONSTRAINT [FK_BOTS.INSTANCES.DEVICES.IPS_BOTS.INSTANCES.DEVICES]GOALTERTABLE [dbo].[BOTS.INSTANCES.DEVICES.IPS] WITHCHECKADDCONSTRAINT [FK_BOTS.INSTANCES.DEVICES.IPS_BOTS.INSTANCES.DEVICES.IPS] FOREIGNKEY([Bot.Instance.Device.IP.ID])REFERENCES [dbo].[BOTS.INSTANCES.DEVICES.IPS] ([Bot.Instance.Device.IP.ID])GOALTERTABLE [dbo].[BOTS.INSTANCES.DEVICES.IPS] CHECKCONSTRAINT [FK_BOTS.INSTANCES.DEVICES.IPS_BOTS.INSTANCES.DEVICES.IPS]GOALTERTABLE [dbo].[BOTS.INSTANCES.DEVICES.IPS] WITHCHECKADDCONSTRAINT [FK_BOTS.INSTANCES.DEVICES.IPS_IPS] FOREIGNKEY([IP.ID])REFERENCES [dbo].[IPS] ([IP.ID])GOALTERTABLE [dbo].[BOTS.INSTANCES.DEVICES.IPS] CHECKCONSTRAINT [FK_BOTS.INSTANCES.DEVICES.IPS_IPS]GOEXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'Max 4 per day as according to stats, youtube counts a max of 4 views uniqeu per day per ip, of course, user may have a home IP used by his phone, tablet, computer and labtop' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'BOTS.INSTANCES.DEVICES.IPS', @level2type=N'COLUMN',@level2name=N'Bot.Instance.Device.ID'GOEXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'Max 4 per day per DEVICE.ID ' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'BOTS.INSTANCES.DEVICES.IPS', @level2type=N'COLUMN',@level2name=N'Bot.Instance.Device.IP.ID'GO
CREATE TRIGGER TRG_BOTS_INSTANCES_DEVICES_IPS_DenyMoreThanOneEach4hrsperDevicePerIPON [BOTS.INSTANCES.DEVICES.IPS]AFTER INSERTASBEGIN IF EXISTS ( SELECT 1 FROM Inserted I JOIN [BOTS.INSTANCES.DEVICES.IPS] B ON (B.[Bot.Instance.Device.ID] = I.[Bot.Instance.Device.ID] AND B.[IP.ID] = I.[IP.ID]) WHERE B.[Bot.Instance.Device.IP.Asigned] <DATEADD(hour,-6,GETDATE()) ) BEGINRAISERROR('No se puede insertar el registro:Bot.Instance.Device e IP son iguales y la fecha es anterior a hace 6 horas.',16,1); ROLLBACK TRANSACTION; RETURN; ENDEND;GO
(trigger :: at least one URL (desktop, mobile or tablet must be per record)
CREATE TRIGGER [dbo].[TRG_URLS_OnIsert_Or_OnUpdate]ON [dbo].[URLS]AFTER INSERT, UPDATEASBEGIN SET NOCOUNT ON; IF EXISTS ( SELECT 1 FROM insertedWHERE ([URL.Desktop] IS NULL) AND ([URL.Mobile] IS NULL ) AND ([URL.Tablet] IS NULL) ) BEGINRAISERROR ('At least one type URL must be provided.',16,1); ROLLBACK TRANSACTION; ENDEND;
CREATE TRIGGER TRG_USERS_ValidateEmailFormat ON USERSAFTER INSERT, UPDATEASBEGIN SET NOCOUNT ON;-- Check if any inserted/updated rows have an invalid email format IF EXISTS ( SELECT 1 FROM USERS WHERE 1=1AND (-- Pattern: char + @ + char +.+ at least 2 chars for TLD [User.Email] NOT LIKE '%_@_%_.__%'-- Disallow specific common invalid characters OR [User.Email] LIKE '%[^a-z0-9@._-]%' ESCAPE '\' -- Disallow consecutive dots or @ OR [User.Email] LIKE '%..%' OR [User.Email] LIKE '%@%@%' ) ) BEGINRAISERROR ('The Email format provided is invalid.',16,1); ROLLBACK TRANSACTION; ENDEND;GO
USERS.URLS
USE [superbots]GOSETANSI_NULLSONGOSETQUOTED_IDENTIFIERONGOCREATETABLE [dbo].[USERS.URLS]( [User.ID] [int] NOTNULL, [URL.ID] [int] NOTNULL, [User.URL.ID] [int] NOTNULL, [User.URL.Created] [datetime2](7) NOTNULL, [User.URL.Legitimated] [datetime2](7) NULL,CONSTRAINT [PK_USERS.URLS] PRIMARYKEYCLUSTERED( [User.URL.ID] ASC)WITH (PAD_INDEX=OFF, STATISTICS_NORECOMPUTE=OFF, IGNORE_DUP_KEY=OFF, ALLOW_ROW_LOCKS=ON, ALLOW_PAGE_LOCKS=ON, OPTIMIZE_FOR_SEQUENTIAL_KEY=OFF) ON [PRIMARY]) ON [PRIMARY]GOALTERTABLE [dbo].[USERS.URLS] ADDCONSTRAINT [DF_USERS.URLS_User.Url.Created] DEFAULT (getdate()) FOR [User.URL.Created]GOALTERTABLE [dbo].[USERS.URLS] WITHCHECKADDCONSTRAINT [FK_USERS.URLS_URLS] FOREIGNKEY([URL.ID])REFERENCES [dbo].[URLS] ([URL.ID])GOALTERTABLE [dbo].[USERS.URLS] CHECKCONSTRAINT [FK_USERS.URLS_URLS]GOALTERTABLE [dbo].[USERS.URLS] WITHCHECKADDCONSTRAINT [FK_USERS.URLS_USERS] FOREIGNKEY([User.ID])REFERENCES [dbo].[USERS] ([User.ID])GOALTERTABLE [dbo].[USERS.URLS] CHECKCONSTRAINT [FK_USERS.URLS_USERS]GOEXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'Identifies, if an url is owned by the user. Web must verify via DNS records on that domain' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'USERS.URLS', @level2type=N'COLUMN',@level2name=N'User.URL.Legitimated'GO
USERS.URLS.YOUTUBE
Made to include the stats (of views, likes, comments, etc) when user created theURL
USE [superbots]GOSETANSI_NULLSONGOSETQUOTED_IDENTIFIERONGOCREATETABLE [dbo].[USERS.URLS.YOUTUBES]( [User.URL.ID] [int] NOTNULL, [Views] [int] NOTNULL, [Likes] [int] NOTNULL, [Comments] [int] NOTNULL) ON [PRIMARY]GO
First of all let me say that you can use other brand / model of software and OS, as the progtramming techniques may be applied to, so better use the best you know, altought the learning is always welcome.
Please take a look at the ways you can pump up your videos, which I documented, so.
Say you developed a great bot which you can run multiple instances, or say you have a farm of devices (phones, tablets, etc..), or both.
You need for each one to have an IP address, and most important, each one must have his own, to not be shared with the others in your project, and of course, with no other away from you.
There are multiple providers out there with rent the so-called proxy ips, with pricing varying from a few dollars nper single unit to say 1 USD for a couple of thhousands.
But hey, if you want a video to have say 1 million, Do you need 1 Million of IPs ?
NO, unless you want 1 million to be stated on your video in 1 day.
All depends on your money, target time, how many views you want your video to show, and very important, the limits define by google, which translate to around 3-5 views per day per unique IP
Say at safe speak:
1 IP = 3 view counts per day
Database DB : whatever depending on your reach.
You can use
SQL database (I use MS SQL Express)
Text file (I used on beggining)
You’ll store the IPS, then devices (app/soft instances or real devices), URL’s (of your vides), Actions (say visit the url, playback a video, skip or accept the cookies banner, the ADS etc.) and thats basically.
VIRTUAL MACHINES / REAL PHYSICAL DEVICES and a control area.
As you ‘ll use, depending on your budged, following is an approach:
Almost no $
eco friendly
mid tier
well for 1m / month/s / video
V. Machines
1
3
10
50
Real Devices
1
10
100
500
IP’s
10
50
100
1000
PROGRAMMING
Thats the best part, the most important, you’ll need a software development, either using Microsoft languages, Linux, or whatever you like better. For this blog I am using .Net
Winforms / WPF and or whatever , being used old .net (before .Net CORE <.. Which I don’t like due to the mandatory recompilations)
HTML + Javascript + [ Server side (where to store Datase)]*
*for low budgets you dont need server side, just using text files is fine, but HTML & JS.
You have a great idea, something a bit different from the rest.
You want to get thousands of views from people, perhaps you have a great service, product, business, or just a video channel you’re looking to earn enought money to .. cause you’re doing great videos, right ??
Thats the first lesson you need to know. What for you, your videos might be good, may be poor for the viewers,
But hey, this blog will not talk at all the above paragraphs, as this is a development blog, focusing on programming, and server techniques, but, first of all, in order the work you spend, take some ROI / profit, please check this rules, every time you’re recording, when you interpret, and when you’re editing, so :
RULE # 1 : Do it yourself.
Avoid third parties as much as possible. Do it yourself, you can.
RULE # 2: Do it in a profesional manner.
2. A) Buy new clothes, dress well, write scripts before performing behind the camera, and buy all the pro equipment your pocket can.
Don’t need to buy last camera, or last car, or last hi tech microphone, just take a look at a bit older devices, can do almost as new ones, in a more affordable way.
2. B) Update frequently a public website, where on submit content related to each video or stream you made.
2. C) Publish a post on your channel, a few hours before, letting know that your new video is coming
RULE # 3: There’s nothing free, you must invest.
Depending on your budget. But, spend as low as your pocket’s possibilities.
RULE # 4: Avoid AI as much as possible.
That’s not intelligence, that’s an artificial, pristine decorated fashion, that, either on video, picture and voice, will not help you, on the end will damage your channel.
Avoid creating miniatures, songs, or video clips IA generated
RULE # 5: Be Unique. Atractive, but different.
Do not imitate, innovate instead. Be your own.
RULE # 6: What you are saying, demostrate on, prove it.
What you want to express, in the way you know it, may not be interpreted the same way by others.
RULE # 7: There’s no timeout.
A popular Spanish refrain says «Las prisas son malas consejeras» which equals to say, take your time.
RULE # 8: Filter
If they ask for, or you think that your product or whatever, say may have many many requests, then filter, against your rules, if they not follow, clear them all.
RULE # 9: TO NOT DISCLOSURE AT ALL
RULE # 10: BOTH HUMANS AND BOTS CAN BE WRONG Making some mistakes, so above rules may change and not to be at all true.
postdate: If they will take, be sure you’ll get from
Deja una respuesta