PageSourceSearch

https://freesavevideo.online/_app/immutable/chunks/i18n_en.B6uRMTn7.js

js freesavevideo.online collected 2026-10-02 00:06:12 UTC 149,485 bytes, 59 lines download raw bytes

1const e={toolsWithoutPoints:"Tools that do not consume points",downloadGuide:"Download guide",corePages:"Core pages",similarDownloads:"Similar downloads"},t="2026-09-03",o=[{q:"Which links work best?",a:"Use a specific public video URL, post URL, Shorts URL, or supported playlist/collection URL. Profile pages, channel homepages, search pages, private links, and membership-only content are not reliable download targets."},{q:"Does FreeSaveVideo support playlists and batch downloads?",a:"Yes. Supported playlist, collection, and multi-link workflows can be turned into batch tasks so users can review and save several public videos from one page."},{q:"Where are downloaded files saved?",a:"Direct downloads are saved to the browser default download folder. Queue downloads finish inside FreeSaveVideo first, then the user clicks Save to store the file locally."},{q:"Is FreeSaveVideo only a downloader?",a:"No. It also includes browser tools such as MP4 to MP3, audio extraction, video conversion, whiteboard recording, cross-device file transfer, Discover, and random 1v1 video chat."}],i=["For best results, paste a specific public video, post, Shorts, playlist, or collection URL rather than a profile or channel homepage.","Use batch mode for multiple links and playlist results; queue tasks can retry and continue after interruptions.","Set quality, format, audio-only, or mute options before parsing when you need a specific output.","Use the platform-specific download pages when available because they explain the exact link type that works best."],a=["Clear public-content boundary: FreeSaveVideo is for publicly accessible links, not private or paywalled media.","Broad platform coverage across Amazon Live, YouTube, TikTok, Douyin, Bilibili, iQIYI, Sohu Video, NicoNico, Kuaishou, Kugou Music, Xiaohongshu, Instagram, Threads, Facebook, X/Twitter, Vimeo, SoundCloud, Pinterest, Reddit, and more.","Batch, playlist, collection, audio, mute, and queue workflows are built into the browser experience.","Privacy-conscious local tools process user files in the browser when possible instead of requiring upload."],n=["2026-09-03: Added public, free iQIYI video extraction, player-ad exclusion, and server-remuxed MP4 delivery.","2026-08-17: Updated public collection, multi-part detection, and batch task instructions.","2026-08-17: Added supported link types for public videos, playlists, collections, and batch downloads.","2026-08-17: Clarified public-content boundaries, privacy, and browser save workflows."],s=[{title:"Random video chat",desc:"No points required",path:"random-chat"},{title:"Video format conversion",desc:"No points required",path:"remux"},{title:"Discover",desc:"No points required",path:"discover"},{title:"Whiteboard recording",desc:"No points required",path:"videorecord"},{title:"File transfer",desc:"No points required",path:"clipboard"}],r={tiktok:[{q:"What should I do if a TikTok URL fails?",a:"Use a post share URL (not profile URL), retry, then switch networks if needed."},{q:"Why is TikTok quality lower than expected?",a:"Adjust quality settings and parse again. Final options depend on source media."},{q:"Why does a TikTok slideshow link fail to return media?",a:"Some slideshow posts and music-protected assets expose limited downloadable media. Try another post URL or use queue retries."},{q:"Why does TikTok show no result for a copied profile link?",a:"Profile links are not direct media pages. Open a specific post and copy its share URL for parsing."}],douyin:[{q:"Why does my Douyin link not download?",a:"Use a post share URL, not search/discovery URLs."},{q:"How should I handle interrupted Douyin queue tasks?",a:'For Douyin queue tasks, click "Continue" to resume after interruptions, then click "Save" after completion.'},{q:"Why does Douyin show no permission or blank results on some links?",a:"Some shared links point to restricted or region-limited posts. Open the original post page, confirm public access, then parse again in queue mode."}],instagram:[{q:"Is occasional Instagram failure expected?",a:"Temporary source-side fluctuation can happen. Retry and confirm public access."},{q:"Why does an Instagram Story link fail after some time?",a:"Stories can expire quickly. Use a currently available public story URL and parse it as soon as possible."},{q:"Why does Instagram return no media for private content?",a:"Private content is not publicly accessible for parsing. Use publicly accessible post URLs instead."}],youtube:[{q:"Why is YouTube parsing slow?",a:"Long videos and traffic peaks increase parse time. Queue mode is recommended."},{q:"Why can't I download a YouTube live stream immediately?",a:"Live streams and fresh uploads may need source-side processing first. Retry later or queue the task and resume if interrupted."},{q:"Why does a YouTube URL parse but show limited options?",a:"Available options depend on source metadata, region rules, and format availability. Adjust output settings and parse again."}],bilibili:[{q:"Where is my Bilibili file after queue completion?",a:"Queue mode needs an explicit Save click after task completion."},{q:"Why does Bilibili multi-part content download only one part?",a:"Paste the complete public multi-part video or a supported collection URL. FreeSaveVideo expands the items it can currently detect so you can select multiple parts for the batch queue. If only one item remains, rely on the current parse result."}],xiaohongshu:[{q:"Why is Xiaohongshu download unstable?",a:"Use queue mode and Continue. Source-side media availability can vary."},{q:"Why does Xiaohongshu return audio-only or missing video options?",a:"Some notes expose limited media variants. Adjust quality or format settings, then re-parse the same link and retry later if needed."}],facebook:[{q:"Why can I not find my Facebook file?",a:"Direct mode saves to browser folder; queue mode requires Save after completion."}],generic:[{q:"What should I check first when parsing fails?",a:"Verify public URL access, check settings, then retry with queue mode."}],toutiao:[{q:"What should I check when a Toutiao link fails?",a:"Make sure the URL points to a public Toutiao video detail page, not a search page, feed page, or comment page."},{q:"Why are HD options missing?",a:"Available quality options depend on the MP4 variants returned by Toutiao for that video."}],haokan:[{q:"How do I download Haokan videos to my phone?",a:"Copy the public haokan.baidu.com video URL, paste it into FreeSaveVideo, then save an available MP4 result from your mobile browser."},{q:"Is this the same as installing the Haokan app?",a:"No. FreeSaveVideo extracts downloadable results from public video links. It does not provide Haokan app installer
1s, recovery, or local player rankings."},{q:"Can I use Haokan links from Baidu search results?",a:"Yes, if the result opens a public Haokan video page such as haokan.baidu.com/v?vid=... rather than an app download page or a search listing."}],weibo:[{q:"How do I copy a Weibo video URL?",a:"Open the Weibo video page, click Copy video address on the player, then paste the copied t.cn short link or Weibo video page URL into FreeSaveVideo."},{q:"Can I paste a t.cn short link?",a:"Yes. Weibo often copies t.cn short links, and FreeSaveVideo can parse supported public Weibo video links."},{q:"Why does a Weibo link fail?",a:"Make sure it is a public playable video, not a profile, comment page, private post, or deleted video. Re-copy the video address if the source link has expired."}],iqiyi:[{q:"Does iQIYI downloading include player advertisements?",a:"No. The extractor validates the requested video and selects its main-program playlist instead of appending separate player advertisement assets."},{q:"Why does FreeSaveVideo remux iQIYI video to MP4?",a:"The public source can be packaged as MPEG-TS. Server-side remuxing preserves the existing audio and video streams while producing an MP4 that is easier to play and save."},{q:"Are iQIYI VIP or DRM videos supported?",a:"No. Only public, free videos available without bypassing membership, payment, DRM, login, account, or regional controls are supported."}]},l={tiktok:{heading:"TikTok workflow notes",notes:["Use specific post URLs.","Retry once, then switch network.","Prefer queue mode for longer media."],checklist:["Public post URL confirmed","Quality settings configured","Saved after queue completion"]},douyin:{heading:"Douyin workflow notes",notes:["Avoid search/discovery URLs.","Use Continue on interruption.","Adjust quality settings before re-parse."],checklist:["Specific post URL confirmed","Direct vs queue mode selected","Final Save step completed"]},instagram:{heading:"Instagram workflow notes",notes:["Source-side fluctuation is possible.","Options depend on source media.","Queue mode improves stability."],checklist:["Public access verified","Queue mode used when needed","File location confirmed"]},youtube:{heading:"YouTube workflow notes",notes:["Long videos may parse slowly.","Set audio preference before parsing again.","Use Continue to avoid full restarts."],checklist:["Video URL confirmed","Output preference set","Saved after queue completion"]},bilibili:{heading:"Bilibili workflow notes",notes:["Direct mode saves to browser folder.","Queue mode needs explicit Save.","Re-parse after quality changes."],checklist:["Public URL confirmed","Mode and settings checked","Final file path verified"]},xiaohongshu:{heading:"Xiaohongshu workflow notes",notes:["Use queue mode on unstable networks.","Option count depends on source.","Retry later if source is limited."],checklist:["Public URL confirmed","Queue mode selected","Save flow completed"]},facebook:{heading:"Facebook workflow notes",notes:["Check direct vs queue mode first.","Queue needs completion plus Save.","Continue resumes interrupted tasks."],checklist:["Public URL confirmed","Mode is clear","Save path checked"]},generic:{heading:"General workflow notes",notes:["Use public shareable URLs.","Queue + resume on unstable networks.","Set quality before parsing again."],checklist:["URL is valid and public","Settings match target output","Final file location confirmed"]},toutiao:{heading:"Toutiao download workflow notes",notes:["Use the public video detail page or mobile share link.","Avoid pasting Toutiao search results or feed pages.","Check the parsed quality list before saving."],checklist:["URL points to a public Toutiao video","The source video still plays","An MP4 option appears in the result"]},haokan:{heading:"Haokan download workflow notes",notes:["Use the exact public haokan.baidu.com video URL, not a search results page.","Save an available MP4 variant when parsing succeeds.","Treat app install, app recovery, and player ranking searches as different intents from video link extraction."],checklist:["Public Haokan video page confirmed","haokan.baidu.com/v?vid=... URL copied","MP4 result saved from the browser"]}
1,weibo:{heading:"Weibo video download checklist",notes:["Use Copy video address from the Weibo video player when possible.","A copied t.cn short link can be pasted directly.","If parsing fails, reopen the original video and copy the address again."],checklist:["The Weibo video is public and playable","You copied a video address, not a profile or comment page","The result shows an available MP4 option"]},iqiyi:{heading:"Reliable iQIYI video download workflow",notes:["Use the concrete public iqiyi.com/v_*.html playback page, not a homepage, search result, or channel page.","The server identifies the main program, excludes separate player ad clips, and remuxes the source to MP4.","Only public, free content is eligible; VIP, paid, DRM, login-only, removed, and region-restricted videos are unsupported."],checklist:["Public free iQIYI video confirmed","Concrete v_*.html URL copied","Server-remuxed MP4 saved after processing"]}},d={tiktok:[{title:"Profile URL used instead of post URL",symptoms:"No downloadable media or generic parse failure.",fixes:["Copy the exact post share URL.","Retry parse after network switch if needed.","Use queue mode for long downloads."]},{title:"Profile link or slideshow edge case",symptoms:"Parse returns empty result or limited media options.",fixes:["Use a specific post share URL instead of profile links.","Retry in queue mode on unstable networks.","Switch to another public post when source assets are restricted."]}],douyin:[{title:"Search/discovery URL copied",symptoms:"No result or unstable parsing despite valid-looking URL.",fixes:["Open post details and copy post share URL.","Parse again with queue mode.","Resume with Continue on interruption."]},{title:"Restricted post or region-limited share link",symptoms:"Link opens inconsistently or parsing returns no permission / empty result.",fixes:["Verify the post is publicly accessible in your current network.","Copy the share URL from the exact post page.","Use queue mode and Continue when network conditions are unstable."]}],instagram:[{title:"Temporary source-side fluctuation",symptoms:"Intermittent parse failures.",fixes:["Retry after short interval.","Confirm public accessibility.","Use queue mode for retries."]},{title:"Story expired or private content",symptoms:"No downloadable media despite valid-looking URL.",fixes:["Confirm the story is still live.","Use public post URLs when possible.","Retry quickly before temporary content expires."]}],youtube:[{title:"Long video parse delay",symptoms:"Slow progress during parse or download.",fixes:["Keep queue task running.","Resume with Continue if interrupted.","Use audio preference when only audio is needed."]},{title:"Live stream or fresh upload not ready",symptoms:"Parsing succeeds slowly or returns incomplete options.",fixes:["Wait for source-side processing to finish and retry.","Use queue mode for long tasks.","Resume with Continue if network interruption happens."]}],bilibili:[{title:"Queue completed but no local file",symptoms:"Task done state is shown but file is missing.",fixes:["Click Save after queue completion.","Check browser folder only for direct mode.","Verify final save location."]},{title:"Multi-part post mapped to a single segment",symptoms:"Download result includes only one episode or fragment.",fixes:["Paste the complete public multi-part video or supported collection URL again.","Select the required parts from the automatically expanded list, then add them to the batch queue.","If only one item is still detected, confirm that the URL is publicly accessible and retry later."]}],xiaohongshu:[{title:"Unstable throughput",symptoms:"Speed drops or interrupted tasks.",fixes:["Switch to queue mode.","Resume from breakpoint with Continue.","Retry later if source-side media is limited."]},{title:"Limited media variants from source note",symptoms:"Only partial formats appear, or video options are missing.",fixes:["Re-parse after adjusting quality and format settings.","Retry later when source-side assets refresh.","Use queue mode to improve completion stability."]}],facebook:[{title:"Direct vs queue confusion",symptoms:"Download appears complete but file is not found.",f
1ixes:["Direct mode saves to browser folder.","Queue mode requires Save action.","Check queue state and local path."]}],generic:[{title:"Valid-looking URL parse failure",symptoms:"No output returned repeatedly.",fixes:["Confirm URL points to public specific content.","Adjust settings and re-parse.","Use queue mode with resume."]}],toutiao:[{title:"Toutiao URL opens but parsing fails",symptoms:"The page is reachable, but no downloadable result is returned.",fixes:["Confirm the URL is a specific video page.","Try the mobile app share link or the canonical web URL.","Retry with another public video if the source is removed or restricted."]}],haokan:[{title:"Search result or app install page copied",symptoms:"Parsing returns no media because the URL is not a direct Haokan video page.",fixes:["Open the specific Haokan video before copying the URL.","Use haokan.baidu.com/v?vid=... links when available.","Do not paste Haokan app installer, recovery, or player-ranking pages."]},{title:"Video is restricted or unavailable",symptoms:"The page opens, but no downloadable MP4 option is returned.",fixes:["Confirm the video is public and still online.","Retry once in queue mode if the network is unstable.","Try another public Haokan video when source assets are limited."]}],weibo:[{title:"A profile, comment page, or expired link was copied",symptoms:"The page opens in Weibo, but FreeSaveVideo cannot return a playable video result.",fixes:["Go back to the specific video page and choose Copy video address.","Confirm the video is still public and playable.","If the short link expired, copy the video address again and retry."]}],iqiyi:[{title:"A non-video or restricted iQIYI page was copied",symptoms:"Parsing returns no media or reports that the link is unsupported.",fixes:["Open the specific video before copying the address.","Use an iqiyi.com/v_*.html page that plays while signed out.","Do not use VIP, paid, DRM, login-only, search, channel, or homepage URLs."]},{title:"The source video changed or became unavailable",symptoms:"The page previously worked, but extraction or MP4 processing now fails.",fixes:["Confirm that the source page still plays publicly.","Copy a fresh URL and retry once.","Try another public, free iQIYI video to distinguish a source-specific restriction."]}]},Ad={labels:e,updatedAt:t,productFaqs:o,productTips:i,productAdvantages:a,releaseNotes:n,freeTools:s,platformFaqs:r,platformPlaybooks:l,platformFailureCases:d},hc=Object.freeze(Object.defineProperty({__proto__:null,default:Ad,freeTools:s,labels:e,platformFailureCases:d,platformFaqs:r,platformPlaybooks:l,productAdvantages:a,productFaqs:o,productTips:i,releaseNotes:n,updatedAt:t},Symbol.toStringTag,{value:"Module"})),Md={"batch.select_item":"select item","picker.item.photo":"photo thumbnail","picker.item.video":"video thumbnail","picker.item.gif":"gif thumbnail"},mc=Object.freeze(Object.defineProperty({__proto__:null,default:Md},Symbol.toStringTag,{value:"Module"})),Vd={"share.qr.expand":"qr code. press to expand.","share.qr.collapse":"expanded qr code. press to collapse."},gc=Object.freeze(Object.defineProperty({__proto__:null,default:Vd},Symbol.toStringTag,{value:"Module"})),c="go back",Wd={back:c},bc=Object.freeze(Object.defineProperty({__proto__:null,back:c,default:Wd},Symbol.toStringTag,{value:"Module"})),u={default:"queue status",ongoing:"queue processing",completed:"queue completed"},jd={status:u},_c=Object.freeze(Object.defineProperty({__proto__:null,default:jd,status:u},Symbol.toStringTag,{value:"Module"})),p="link input area",h="clear input",m="download",Od={link_area:p,"link_area.turnstile":"link input area. checking if you're not a robot.",clear_input:h,download:m,"download.think":"processing the link...","download.check":"verifying download...","download.done":"downloading done","download.error":"downloading error","tutorial.shortcut.photos":"add photos shortcut","tutorial.shortcut.files":"add files shortcut"},fc=Object.freeze(Object.defineProperty({__proto__:null,clear_input:h,default:Od,download:m,link_area:p},Symbol.toStringTag,{value:"Module"})),g="tabs panel",Ud={tab_panel:g},yc=Object.freeze(Object.defineProperty({__proto__:null,default:Ud,tab_panel:g},Symbol.toStringTag,{value:"Module"})),Ld={"page.general":"what's FreeSaveVideo?","page.faq":"FAQ","page.community":"community & support","page.privacy":"privacy policy","page.terms":"terms and ethics","page.credits":"thanks & licenses","community.discord":"community discord server","community.twitter":"news account on twitter","community.github":"github repo","community.email":"support email","community.telegram":"news channel on telegram","heading.general":"general terms","heading.licenses":"licenses","heading.summary":"best way to save what you love","heading.privacy":"leading privacy","heading.community":"open community","heading.local":"on-device processing","heading.saving":"saving","heading.encryption":"encryption","heading.plausible":"anonymous traffic analytics","heading.cloudflare":"web privacy & security","heading.responsibility":"user responsibilities","heading.abuse":"reporting abuse","heading.motivation":"motivation","heading.tester
1s":"beta testers","page.refund":"refund policy","page.copyright":"copyright policy","page.dmca":"DMCA policy","page.contact":"contact us"},vc=Object.freeze(Object.defineProperty({__proto__:null,default:Ld},Symbol.toStringTag,{value:"Module"})),b="account",_="sign in to manage your account.",f="authentication is not configured on this environment.",y="set WEB_CLERK_PUBLISHABLE_KEY to enable clerk.",v="signed in as",w="manage account",k="buy points",S="choose an amount and pay with WeChat",q="choose an amount and pay with WeChat",x="choose an amount and pay securely with Buy Me a Coffee",T="choose a point package and pay with crypto",C="points",P="sign in",R="sign up",F="sign out",D="loading...",I="failed to load points.",A="failed to load point packages.",M="failed to create payment. please try again.",V="¥0.02 / point",W="¥0.01 / point",j="¥0.008 / point",O="test",U="best value",L="recommended",N="WeChat Pay",$="International Pay",Y="Pay with Crypto",z="WeChat QR pay",B="Crypto payment",E="Current minimum for this currency: {value}",H="close",Q="order #",G="total",K="payment successful, points credited",X="WeChat Pay QR code",J="Crypto payment address QR code",Z="generating QR code...",ee="open payment link",te="you can keep buying or close this window.",oe="waiting for payment…",ie="the page refreshes automatically after payment (or you can check manually).",ae="send exactly",ne="currency and network",se="payment address",re="copy address",le="address copied",de="use the exact amount, currency, network and address shown above. points are credited after the payment is fully confirmed.",ce="this payment has expired. close this window and create a new order.",ue="this payment could not be completed. close this window and create a new order.",pe="check status",he="done",me="cancel",ge="invite friends, earn points",be="share your unique link. your friend gets 20 bonus points and you get 50 points after sign-up.",_e="your invite link",fe="copy link",ye="copied",ve="copy failed",we="rules",ke="your friend must create a new account through this link.",Se="after successful sign-up, you will automatically receive 50 points.",qe="each new account can only be attributed once; self-invites and abuse are invalid.",xe="get free points via chat",Te="Feel free to add me to claim free points—or tell me what you need from FreeSaveVideo.",Ce="When you message me, mention ‘free points’ or share what you would like us to improve.",Pe="wechat",Re="line",Fe="whatsapp",De="WeChat QR code",Ie="LINE QR code",Ae="WhatsApp QR code",Me="membership",Ve="inactive",We="7-day pass",je="3-day pass",Oe="monthly member",Ue="yearly member",Le="month",Ne="valid until {{ date }}",$e="membership benefits",Ye="Get downloads without point deductions, AI highlight clips with translated subtitles, browser video recording, and member-only random video chat. Downloads follow fair-use limits; AI video includes 120 minutes per month.",ze="failed to load membership plans.",Be="one payment, valid for 7 days",Ee="one payment, valid for 3 days",He="billed once for 30 days",Qe="equivalent to {{ price }}",Ge="special offer equivalent to {{ price }}",Ke="Teachers' Day special offer",Xe="current plan: {{ plan }}",Je="today {{ used }}/{{ limit }}",Ze="this month {{ used }}/{{ limit }}",et="up to {{ limit }} downloads per day",tt="up to {{ limit }} downloads per month",ot="no points consumed",it="fair-use included",at="120 AI video minutes monthly",nt="browser video recording",st="member random video chat",rt="payment successful, membership activated",lt="US$7.99 per month, renews automatically",dt="US$79.99 per year, renews automatically",ct="one payment of US$9.99, valid for 30 days",ut="cancel automatic renewal",pt="Automatic renewal is canceled. Your membership remains active through the paid period.",ht="Automatic renewal canceled. Your paid membership remains active until it expires.",mt="Unable to cancel automatic renewal. Please try again.",gt="Create your account to keep downloading",bt="Registration is quick: use Google or GitHub, or enter your email and password. Most people finish in under a minute.",_t="After registration, you can continue downloads, keep batch progress, remember downloaded collection items, and manage points from your account.",ft="create account",yt="Use email if Google or GitHub is slow",vt="Google and GitHub sign-up may require access to those sites. If the page does not move after clicking them, email registration is usually faster and more reliable.",wt="Try email registration to continue",kt="If Google or GitHub did not open, your network may not be able to reach them. Email registration is simple and usually finishes in under a minute.",St="Email registration does not depend on Google or GitHub and usually finishes in under a minute.",qt="use email",xt="Google/GitHub",Nd={title:b,subtitle:_,not_configured:f,not_configured_hint:y,signed_in_as:v,manage:w,topup_title:k,topup_subtitle:S,topup_subtitle_wechat:q,topup_subtitle_buymeacoffee:x,topup_subtitle_nowpayments:T,points_label:C,sign_in:P,sign_up:R,sign_out:F,loading:D,points_load_failed:I,credit_products_load_failed:A,payment_create_failed:M,unit_price_2_fen:V,unit_price_1_fen:W,unit_price_0_8_fen:j,badge_test:O,badge_best:U,badge_recommended:L,wechat_pay:N,international_pay:$,nowpayments_pay:Y,wechat_qr_pay_title:z,nowpayments_qr_pay_title:B,nowpayments_current_minimum:E,close:H,order_no:Q,order_total:G,payment_success:K,wechat_qr_alt:X,nowpayments_qr_alt:J,qr_generating:Z,open_payment_link:ee,payment_paid_hint:te,payment_waiting:oe,payment_waiting_hint:ie,nowpayments_send_exact:ae,nowp
1ayments_network:ne,nowpayments_address:se,copy_address:re,address_copied:le,nowpayments_waiting_hint:de,payment_expired:ce,payment_failed:ue,check_status:pe,done:he,cancel:me,referral_title:ge,referral_subtitle:be,referral_link_label:_e,referral_copy:fe,referral_copied:ye,referral_copy_failed:ve,referral_rules_title:we,referral_rule_1:ke,referral_rule_2:Se,referral_rule_3:qe,contact_points_title:xe,contact_points_subtitle:Te,contact_points_note:Ce,contact_points_wechat:Pe,contact_points_line:Re,contact_points_whatsapp:Fe,contact_points_wechat_alt:De,contact_points_line_alt:Ie,contact_points_whatsapp_alt:Ae,membership_label:Me,membership_inactive:Ve,membership_weekly:We,membership_3day:je,membership_monthly:Oe,membership_yearly:Ue,membership_month_short:Le,membership_valid_until:Ne,membership_title:$e,membership_subtitle:Ye,membership_products_load_failed:ze,membership_weekly_subtitle:Be,membership_3day_subtitle:Ee,membership_monthly_subtitle:He,membership_yearly_subtitle:Qe,membership_yearly_promo_subtitle:Ge,membership_teacher_day_offer:Ke,membership_current:Xe,membership_daily_usage:Je,membership_monthly_usage:Ze,membership_daily_limit:et,membership_monthly_limit:tt,membership_benefit_no_points:ot,membership_benefit_fair_use:it,membership_benefit_ai_video:at,membership_benefit_video_recording:nt,membership_benefit_random_chat:st,membership_payment_success:rt,membership_monthly_recurring_subtitle:lt,membership_yearly_recurring_subtitle:dt,membership_monthly_onetime_subtitle:ct,membership_cancel_subscription:ut,membership_subscription_cancel_at_end:pt,membership_subscription_cancelled:ht,membership_subscription_cancel_failed:mt,download_signup_retry_title:gt,download_signup_retry_body:bt,download_signup_retry_benefits:_t,download_signup_retry_cta:ft,download_signup_cn_title:yt,download_signup_cn_body:vt,download_signup_cn_retry_title:wt,download_signup_cn_retry_body:kt,download_signup_cn_subtext:St,download_signup_cn_email_cta:qt,download_signup_cn_oauth_cta:xt},wc=Object.freeze(Object.defineProperty({__proto__:null,address_copied:le,badge_best:U,badge_recommended:L,badge_test:O,cancel:me,check_status:pe,close:H,contact_points_line:Re,contact_points_line_alt:Ie,contact_points_note:Ce,contact_points_subtitle:Te,contact_points_title:xe,contact_points_wechat:Pe,contact_points_wechat_alt:De,contact_points_whatsapp:Fe,contact_points_whatsapp_alt:Ae,copy_address:re,credit_products_load_failed:A,default:Nd,done:he,download_signup_cn_body:vt,download_signup_cn_email_cta:qt,download_signup_cn_oauth_cta:xt,download_signup_cn_retry_body:kt,download_signup_cn_retry_title:wt,download_signup_cn_subtext:St,download_signup_cn_title:yt,download_signup_retry_benefits:_t,download_signup_retry_body:bt,download_signup_retry_cta:ft,download_signup_retry_title:gt,international_pay:$,loading:D,manage:w,membership_3day:je,membership_3day_subtitle:Ee,membership_benefit_ai_video:at,membership_benefit_fair_use:it,membership_benefit_no_points:ot,membership_benefit_random_chat:st,membership_benefit_video_recording:nt,membership_cancel_subscription:ut,membership_current:Xe,membership_daily_limit:et,membership_daily_usage:Je,membership_inactive:Ve,membership_label:Me,membership_month_short:Le,membership_monthly:Oe,membership_monthly_limit:tt,membership_monthly_onetime_subtitle:ct,membership_monthly_recurring_subtitle:lt,membership_monthly_subtitle:He,membership_monthly_usage:Ze,membership_payment_success:rt,membership_products_load_failed:ze,membership_subscription_cancel_at_end:pt,membership_subscription_cancel_failed:mt,membership_subscription_cancelled:ht,membership_subtitle:Ye,membership_teacher_day_offer:Ke,membership_title:$e,membership_valid_until:Ne,membership_weekly:We,membership_weekly_subtitle:Be,membership_yearly:Ue,membership_yearly_promo_subtitle:Ge,membership_yearly_recurring_subtitle:dt,membership_yearly_subtitle:Qe,not_configured:f,not_configured_hint:y,nowpayments_address:se,nowpayments_current_minimum:E,nowpayments_network:ne,nowpayments_pay:Y,n
1owpayments_qr_alt:J,nowpayments_qr_pay_title:B,nowpayments_send_exact:ae,nowpayments_waiting_hint:de,open_payment_link:ee,order_no:Q,order_total:G,payment_create_failed:M,payment_expired:ce,payment_failed:ue,payment_paid_hint:te,payment_success:K,payment_waiting:oe,payment_waiting_hint:ie,points_label:C,points_load_failed:I,qr_generating:Z,referral_copied:ye,referral_copy:fe,referral_copy_failed:ve,referral_link_label:_e,referral_rule_1:ke,referral_rule_2:Se,referral_rule_3:qe,referral_rules_title:we,referral_subtitle:be,referral_title:ge,sign_in:P,sign_out:F,sign_up:R,signed_in_as:v,subtitle:_,title:b,topup_subtitle:S,topup_subtitle_buymeacoffee:x,topup_subtitle_nowpayments:T,topup_subtitle_wechat:q,topup_title:k,unit_price_0_8_fen:j,unit_price_1_fen:W,unit_price_2_fen:V,wechat_pay:N,wechat_qr_alt:X,wechat_qr_pay_title:z},Symbol.toStringTag,{value:"Module"})),Tt="got it",Ct="cancel",Pt="reset",Rt="done",Ft="download",Dt="buy points",It="earn free points",At="invite friends",Mt="monthly membership",Vt="promote site",Wt="share",jt="copy",Ot="copied",Ut="star",Lt="follow",Nt="save",$t="yes",Yt="no",zt="clear",Bt="remove",Et="retry",$d={gotit:Tt,cancel:Ct,reset:Pt,done:Rt,"download.audio":"download audio","download.video":"download video",download:Ft,buy_points:Dt,free_points:It,invite_points:At,membership:Mt,promotion_points:Vt,share:Wt,copy:jt,"copy.section":"copy the section link",copied:Ot,import:"import",continue:"continue",star:Ut,follow:Lt,save:Nt,export:"export",yes:$t,no:Yt,clear:zt,remove:Bt,retry:Et},kc=Object.freeze(Object.defineProperty({__proto__:null,buy_points:Dt,cancel:Ct,clear:zt,copied:Ot,copy:jt,default:$d,done:Rt,download:Ft,follow:Lt,free_points:It,gotit:Tt,invite_points:At,membership:Mt,no:Yt,promotion_points:Vt,remove:Bt,reset:Pt,retry:Et,save:Nt,share:Wt,star:Ut,yes:$t},Symbol.toStringTag,{value:"Module"})),Ht="File Transfer & Temporary Chat",Qt="Connect your devices or another person to share files, send text and talk privately.",Gt="No chat app to install. Optional disappearing texts and encrypted file sharing; both browsers must stay online.",Kt={title:"Private browser chat and file sharing without an app",summary:"FreeSaveVideo is a video download and browser tools website. Its file-transfer page also supports temporary one-to-one text conversations with someone you know. Create a random session and share its link or code to connect, with optional disappearing messages for new texts. It suits short exchanges when you do not want to add a social contact, install another messenger or keep the conversation in your everyday chat history.",scenarios_title:"When is it useful?",scenarios:{devices:"Between your devices: send phone photos, computer files, links and notes to another device.",sharing:"With a friend or colleague: exchange files and discuss them without adding another social contact.",conversation:"For a private conversation: discuss personal or family matters in a separate browser session without adding the exchange to your everyday chat list.",discreet:"A discreet tool-site entry: the website provides video downloads and file transfer, with chat as one feature, so there is no separate chat app to install on your phone."},steps_title:"How to start a temporary conversation",steps:{create:"Create a random session to chat with another person without signing in. Personal sessions are for devices using the same account.",invite:"Privately share the session link or code, or scan its QR code on the second device. Do not publish session credentials.",chat:"Once connected, choose Chat & Text. For disappearing texts, enable the option above the composer before sending; the 30-second countdown begins when the recipient clicks to reveal the message. You can also switch to File Transfer. Keep both pages open and online.",finish:"Use End This Session or Leave This Session when finished. Closing a page does not mean all device and browser traces have been erased."},faq_title:"Temporary chat and message history FAQ",faq:{wechat:{question:"Can I talk privately without adding messages to WeChat or LINE history?",answer:"Yes. Two people who know each other can use a separate browser session for text and files;
1 its content is not automatically synced to WeChat or LINE. Invitations sent through those apps may remain in their history. This tool does not delete other apps' records or guarantee that it will prevent relationship conflicts."},install:{question:"Do both people need an app, account or friend request?",answer:"Random sessions require no app installation, account or friend request. Use WebRTC-capable browsers and connect with a link, code or QR code. Both people must be online, and network restrictions can prevent connection. Personal sessions require the same signed-in account on both devices."},history:{question:"Where is chat history saved? Is it destroyed immediately after use?",answer:"Optional disappearing texts are supported. New texts sent with this option stay in page memory only. Clicking to reveal starts a countdown; with a working connection, both conversations remove the message after about 30 seconds. Disappearing texts are also cleared when a closed connection or page departure is detected. Background browser suspension may delay execution; expiry is checked on return. Ordinary texts stay in tab session storage and may survive refresh. Files are excluded, and device-level unrecoverable deletion is not guaranteed."},disguise:{question:"Is there a website that does not look like a messenger but offers private, disappearing chat?",answer:"FreeSaveVideo is a video download and tools website. Its file-transfer page also offers one-to-one private chat with optional disappearing texts, providing a discreet tool-site entry without a separate chat app. Disappearing messages clear conversation content, not browser visit history. Open chat pages, screenshots and downloaded files may still be visible."},privacy:{question:"Does encryption stop the recipient from saving or screenshotting messages?",answer:"No. WebRTC encrypts the transfer, while a server coordinates session connections. This does not imply complete anonymity or a service with no logs. Recipients can still copy text, take screenshots or photos, and save files. Share only with people you trust."},files:{question:"Can I send files during a chat or receive messages offline?",answer:"Once connected, switch between files and text without uploading files to a cloud drive first. Both browsers need an online connection; offline message delivery is not provided. Keep the pages open and avoid changing networks during transfers."}}},Xt="Create Session",Jt="Create a new sharing session and get a code",Zt="Create",eo="Creating...",to="Join Session",oo="Enter a session code to join an existing session",io="Join",ao="Joining...",no={personal_transfer:"Transfer Between My Devices",personal_default_hint:"Signed-in users can open or join their personal session with one click.",open_random_session:"Share or Chat with Someone",hide_random_session:"Hide Temporary Session",personal_login_upsell:"Want to use it without scanning QR codes? Sign in and use your personal session for a simpler flow."},so={checking:"Checking session…",checking_hint:"Checking the connection status of your other devices.",action_create:"Start Personal Session",action_join:"Join Current Session",action_resume:"Return to Current Session",action_manage:"Replace a Connected Device",status_empty:"No personal session has been started yet.",status_other_device:"Another device is waiting for you to connect.",status_current_device:"This device already has an active personal session.",status_full:"Two devices are online. You can replace one of them.",two_device_limit:"Each personal session supports only two connected devices at a time.",open:"Open My Personal Session",join:"Join My Personal Session",opened_title:"My Personal Session Is Ready",opened_hint:'On your other device signed in with the same account, click "Join My Personal Session" to start transferring files and text.'},ro="Or enter session code",lo="Scan QR to join",co="Align the QR code within the frame",uo="No camera? Enter the code manually instead.",po="Cancel scanning",ho="Camera access was blocked. Please allow camera permissions and try again.",mo="Camera scanning isn't available on this device or browser.",go="We couldn't find a session code in that QR.",bo="Session Active",_o="Session ID",fo="Copy session ID",yo="Sharing link",vo="Copied",wo="Copy sharing link",ko="Copy session link",So="Link copied!",qo="Session Management",xo="Scan QR code to join from another device",To="Device connected",Co="LAN Direct",Po="Waiting for device to connect",Ro="Chat & Text",Fo="Enter text to share",Do="Enter text to send...",Io="New message received",Ao="Click here to view",Mo="Received Text",Vo="New",Wo="Copy",jo="Clear",Oo="No text received yet",Uo={storage_notice:"Ordinary texts stay in this tab; disappearing texts stay in page memory only.",burn_option:"My new texts disappear 30 seconds after opening",burn_hint:"The recipient clicks to reveal and start the timer. Also cleared on detected connection closure or page departure. Text only; screenshots, copies and browser history remain outside its control.",burn_unavailable:"The other browser has not confirmed support. Disappearing texts cannot be sent yet. Update both pages and reconnect.",burn_reveal:"Click to reveal for 30 seconds",burn_waiting:"Disappearing text · Waiting to be opened",burn_countdown:"Clears in {count}s",conversation:"Conversation",empty_title:"No messages yet",empty_hint:"Messages you send and receive will appear here.",session_only_notice:"Messages are saved only in this tab for the current session.",sending:"Sending",delivered:"Delivered",unconfirmed:"Delivery unconfirmed",failed:"Send failed",retry:"Retry",copied:"Copied",new_messages:"New messages",peer_offline:"The other device is offline. Reconnect to continue sending.",copy_message:"Copy message",placeholder:"Type a message...",send_hint:"Enter to send, Shift+Enter for a new line",send_message:"Send"},Lo="Send",No="Sending...",$o="Download",Yo="Receiving",zo="Received Files",Bo="Disconnect",Eo="End This Session",Ho="Leave This Session",Qo="Leaving…",Go="End this session? The other device will also be disconnected and unfinished transfers will stop.",Ko="Leave this session? The initiating device will keep waiting for another device.",Xo="Clear old connection and continue",Jo="Disconnect the old device from this slot and continue here?",Zo="Allow another device",ei="Releasing...",ti="Disconnect the currently connected device and free its slot?",oi="Hide intro",ii="Show intro",ai={title:"File Transfer",send_files:"Send Files",drop_zone_text:"📁 Drag files here or click to select",transfer_in_progress:"File transfer in progress, please wait",selected_files:"Selected Files: (Auto-sent or waiting for connection)",sending_files:"Sending Files:",sending_progress:"Sending Progress",receiving_progress:"Receiving Progress",cancel_sending:"Cancel Sending",cancel_receiving:"Cancel Receiving",auto_sent:"✅ Files auto-sent",waiting_connection:"⚠️ Waiting for connection to auto-send",no_received_files:"No received files yet",new_file_received:"New file received!",download:"📥 Download",remove:"Remove file"},ni={peer_left_session:"The other device left. This session can now accept another device.",session_ended_by_creator:"The initiating device ended this session.",connection_restored:"Connection fully restored",websocket_connected_partial:"WebSocket connected, but file transfer may not be available, please try to re-establish connection",rebuilding_connection:"Rebuilding connection...",recovering_connection:"Recovering connection, please wait...",connection_recovered:"Connection recovered",file_selection_interrupted:"Connection interrupted during file selection, reconnecting...",connection_unstable:"Connection unstable during file selection, recommend re-establishing connection for better transfer quality",connection_check_failed:"Connection status check failed, recommend refreshing page to re
1connect",waiting_creator_reconnect:"Waiting for creator to reconnect",peer_disconnected:"Peer disconnected",connection_error:"Connection error",session_expired:"Session expired or does not exist, please create a new session",session_full:"Session is full, cannot join",protocol_error:"Communication protocol error",data_format_error:"Data format error",file_too_large:"File too large! {fileName} ({fileSize}MB) exceeds {maxSize}MB limit",files_too_large:"Files too large! The following files exceed {maxSize}MB limit: {fileNames}",file_sent_successfully:"File sent successfully: {fileName}",file_received_partial:"Partially received file: {fileName} (missing {missingCount} chunks)",connection_not_ready:"Connection not ready, please wait for connection to establish",file_sending_in_progress:"File sending in progress, please wait for current sending to complete",receiving_files_wait:"Receiving files, please wait for reception to complete before sending",file_sending_cancelled:"File sending cancelled",file_receiving_cancelled:"File receiving cancelled",transmission_cancelled:"Transmission cancelled",multiple_files_cancelled:"Multi-file sending cancelled, stopping remaining files",single_file_cancelled:"Single file sending cancelled: {fileName}",transmission_cancelled_no_end_signal:"Transmission cancelled, not sending file_end signal: {fileName}",transmission_cancelled_during_flow_control:"Transmission cancelled during flow control wait",files_sent_successfully:"Successfully sent {count} files",send_failed:"Send failed: {error}",transmission_cancelled_by_user:"Transmission cancelled by user",connection_disconnected:"Connection disconnected",refuse_new_file_cancelled:"Transmission cancelled, refusing to start receiving new file: {fileName}",discard_chunk_cancelled:"Transmission cancelled, discarding file chunk: fileId={fileId}, chunkIndex={chunkIndex}",ignore_end_signal_cancelled:"Transmission cancelled, ignoring file end signal: {fileName}",peer_cancelled_transmission:"Peer cancelled file transmission",acknowledge_peer_cancel:"Peer cancelled file transmission",personal_code_rotated:"Session code was reset. Please reopen your personal session.",personal_ws_ticket_invalid:"Personal session authorization expired. Please try again.",personal_session_forbidden:"This personal session can only be joined by the same account.",open_personal_failed:"Failed to open personal session. Please try again.",join_personal_failed:"Failed to join personal session. Please try again.",replace_session_failed:"Could not replace the old connection. Please reconnect and try again.",peer_slot_released:"The connected device was removed. Another device can now join.",session_replaced:"This device was disconnected because another device took its place.",peer_remove_forbidden:"Only the session creator can release the connected device.",release_peer_failed:"The server did not confirm the release. Make sure the backend is updated and try again."},si={session_not_found:"Session not found or expired",session_full:"Session is full",connection_failed:"Connection failed",encryption_failed:"Encryption failed"},Yd={title:Ht,description:Qt,description_subtitle:Gt,guide:Kt,create_session:Xt,create_description:Jt,create:Zt,creating:eo,join_session:to,join_description:oo,join:io,joining:ao,entry:no,personal:so,enter_code:ro,scan_with_camera:lo,scan_instruction:co,scan_manual_hint:uo,scan_cancel:po,scan_camera_error:ho,scan_camera_unsupported:mo,scan_decode_error:go,session_active:bo,session_id:_o,copy_session_id:fo,share_link:yo,copied:vo,copy_link:wo,copy_session_link:ko,link_copied:So,session_management:qo,scan_qr:xo,peer_connected:To,lan_direct:Co,waiting_peer:Po,send_text:Ro,enter_text:Fo,text_placeholder:Do,new_message_received:Io,click_to_view:Ao,received_text:Mo,new_badge:Vo,copy:Wo,clear:jo,no_text_received:Oo,chat:Uo,send:Lo,sending:No,download:$o,receiving:Yo,received_files:zo,disconnect:Bo,end_session:Eo,leave_session:Ho,leaving_session:Qo,end_session_confirm:Go,leave_session_confirm:Ko,replace_old_device:Xo,replace_device_confirm:Jo,release_peer_slot:Zo,releasing_peer_slot:ei,release_peer_confirm:ti,collapse_header:oi,expand_header:ii,file_transfer:ai,messages:ni,error:si},Sc=Object.freeze(Object.defineProperty({__proto__:null,chat:Uo,clear:jo,click_to_view:Ao,collapse_header:oi,copied:vo,copy:Wo,copy_link:wo,copy_session_id:fo,copy_session_link:ko,create:Zt,create_description:Jt,create_session:Xt,creating:eo,default:Yd,description:Qt,description_subtitle:Gt,disconnect:Bo,download:$o,end_session:Eo,end_session_confirm:Go,enter_code:ro,enter_text:Fo,entry:no,error:si,expand_header:ii,file_transfer:ai,guide:Kt,join:io,join_de
1scription:oo,join_session:to,joining:ao,lan_direct:Co,leave_session:Ho,leave_session_confirm:Ko,leaving_session:Qo,link_copied:So,messages:ni,new_badge:Vo,new_message_received:Io,no_text_received:Oo,peer_connected:To,personal:so,received_files:zo,received_text:Mo,receiving:Yo,release_peer_confirm:ti,release_peer_slot:Zo,releasing_peer_slot:ei,replace_device_confirm:Jo,replace_old_device:Xo,scan_camera_error:ho,scan_camera_unsupported:mo,scan_cancel:po,scan_decode_error:go,scan_instruction:co,scan_manual_hint:uo,scan_qr:xo,scan_with_camera:lo,send:Lo,send_text:Ro,sending:No,session_active:bo,session_id:_o,session_management:qo,share_link:yo,text_placeholder:Do,title:Ht,waiting_peer:Po},Symbol.toStringTag,{value:"Module"})),ri={title:"Confirm download",body:"Estimated {{ required }} points will be deducted. Continue?",balance:"You have {{ current }} points. This download needs {{ required }} points. Gap: {{ gap }}.",balance_enough:"You have {{ current }} points. This download needs {{ required }} points.",first_grace:"Your first download can use an automatic grace cover for the missing {{ required }} points, so you can continue.",unknown:"Unable to estimate points; actual deduction applies. Continue?"},zd={"magnific.title":"Open the free Magnific asset in your browser","magnific.body":"Magnific blocked server-side access. Only pages explicitly marked free are supported; Premium assets, private creations, Projects, and credit-based exports are excluded.","magnific.install_title":"Install FreeSaveVideo Downloader","magnific.install_body":"Open the public free asset page, play a video if needed, then use the extension to detect media already exposed by that page.","magnific.installed":"Open the free asset page, then click the extension. Check Magnific's license and attribution requirements before using the file.","magnific.open":"Open free Magnific asset","reset.title":"reset all settings?","reset.body":"are you sure you want to reset all settings? this action is immediate and irreversible.","picker.title":"select what to save","picker.description.desktop":"click an item to save it. images can also be saved via the right click menu.","picker.description.phone":"press an item to save it. images can also be saved with a long press.","picker.description.ios":"press an item to save it with a shortcut. images can also be saved with a long press.","picker.select_item":"select image {{ count }}","picker.batch.save_selected":"save selected ({{ count }})","picker.batch.saving":"saving {{ count }} of {{ max }}...","picker.batch.complete":"saved {{ count }}, failed {{ max }}","batch.title":"batch download","batch.status.selected":"selected","batch.status.running":"running","batch.status.downloaded":"downloaded","batch.select_all":"select all","batch.select_none":"select none","batch.mark_selected_downloaded":"mark selected done","batch.mark_selected_pending":"move selected back","batch.download_selected":"download selected","batch.stop":"stop","batch.view_downloaded":"downloaded","batch.view_pending":"to download","batch.memory.clear":"clear memory","batch.memory.empty.title":"everything already downloaded","batch.memory.empty.body":"all items in this collection were already downloaded. view downloaded items and move any item back to download it again.","batch.memory.cleared.title":"memory cleared","batch.memory.cleared.body":"download memory for this collection has been cleared. reopen the collection to see all items again.","batch.points_insufficient.title":"not enough points","batch.points_insufficient.body":"this batch needs {{ required }} points, but you only have {{ current }}. top up your points to continue.","batch.points_check_failed":"couldn't verify your points. please try again.","batch.points_preview":"this batch will deduct {{ required }} points","batch.points_preview.loading":"calculating points...","batch.limit.title":"too many links","batch.limit.body":"this batch contains {{ count }} links, but the limit is {{ max }}. please download in smaller batches.","batch.limit.download_first":"download first {{ count }}","batch.detect.title":"batch download available","batch.detect.body.collection":"detected a collection: {{ title }} ({{ count }} videos). batch download the whole collection?","batch.detect.body.parts":"detected multiple parts: {{ title }} ({{ count }} parts). batch download all parts?","batch.detect.download_single":"download this only","batch.detect.download_batch":"batch download","batch.manual_save_hint":"Choose automatic saving when you start the batch so each completed video is written to your device immediately.","batch.keep_screen_on_hint":"During batch queue downloads, keep this device awake: do not let your computer sleep or your phone screen lock, or later tasks may pause or fail.","saving.title":"choose how to save","saving.blocked":"FreeSaveVideo tried opening the file in a new tab, but your browser blocked it. you can allow pop-ups for FreeSaveVideo to prevent this from happening next time.","saving.timeout":"FreeSaveVideo tried saving the file automatically, but your browser stopped it. you have to select a preferred method manually.","safety.title":"important safety notice","import.body":`importing unknown or corrupted files may unexpectedly alter or break FreeSaveVideo functionality. only import files that you've personally exported and haven't modified. if you were asked to import this file by someone - don't do it.
2
3we are not responsible for any harm caused by importing unknown setting files.`,"api.override.title":"processing instance override","api.override.body":`{{ value }} is now the processing instance. if you don't trust it, press "cancel" and it'll be ignored.
4
5you can change your choice later in processing settings.`,"safety.custom_instance.body":`custom instances can potentially pose privacy & safety risks.
6
7bad instances can:
81. redirect you away from FreeSaveVideo and try to scam you.
92. log all information about your requests, store it forever, and use it to track you.
103. serve you malicious files (such as malware).
114. force you to watch ads, or make you pay for downloading.
12
13after this point, we can't protect you. please be mindful of what instances to use and always trust your gut. if anything feels off, come back to this page, reset the custom instance, and report it to us on github.`,"processing.ongoing":"FreeSaveVideo is currently processing media in this tab. going away will abort it. are you sure you want to do this?","processing.title.ongoing":"processing will be cancelled","feedback.title":"Feedback","feedback.subtitle":"Tell us what went wrong so we can improve.","feedback.fields.video_url":"Video link with the problem","feedback.fields.phenomenon":"What happened","feedback.fields.suggestion":"Other suggestions","feedback.placeholder.video_url":"Paste the video URL here","feedback.placeholder.phenomenon":"Describe the issue you encountered...","feedback.placeholder.suggestion":"Any additional ideas or requests...","feedback.wechat.title":"Report issues via WeChat","feedback.wechat.hint":"Please state your purpose: report an issue.","feedback.wechat.alt":"WeChat QR code","feedback.submit":"submit","feedback.submitting":"submitting...","feedback.success":"Thanks! Your feedback has been submitted.","feedback.error.not_signed_in":"please sign in first.","feedback.error.submit_failed":"failed to submit feedback. please try again.","feedback.error.video_required":"please enter the video link.","feedback.error.phenomenon_required":"please describe what happened.","feedback.error.video_too_long":"the video link is too long.","feedback.error.phenomenon_too_long":"the description is too long.","feedback.error.suggestion_too_long":"the suggestion is too long.",points_preview:ri,"batch.footer_reminder":"For safer batch downloads, choose a folder for automatic saving and keep this device awake.","batch.start_confirm.title":"Before batch download","batch.start_confirm.body":'Keep this device awake during the whole batch: do not let your computer sleep or your phone screen lock. After each video finishes, click "Save" to keep the file.',"batch.start_confirm.confirm":"I understand, start download","batch.start_confirm.auto_save_body":"Choose a folder once. Each completed video will be saved to your device immediately. Keep this device awake while the batch is running.","batch.start_confirm.unsupported_body":"This browser cannot save a batch directly to a selected folder. Keep this device awake and click Save after each item finishes.","batch.start_confirm.auto_save":"Choose folder and auto-save","batch.start_confirm.manual":"Start with manual saving","tiktok_download.title":"TikTok video preview and download","tiktok_download.status.preparing":"Preparing download...","tiktok_download.status.checking_extension":"Checking browser extension candidates...","tiktok_download.status.using_extension_candidates":"Using browser extension candidates...","tiktok_download.status.downloading":"Downloading video...","tiktok_download.status.complete":"Download complete. Preview the video, then save it.","tiktok_download.status.extension_fallback":"Trying browser extension fallback...","tiktok_download.status.extension_started":"Download started in your browser.","tiktok_download.status.blocked_error":"Direct fetch was blocked. Use the browser download link or copy the URL.","tiktok_download.preview.blocked":"Download started in your browser. Preview is blocked by TikTok CDN.","tiktok_download.preview.unavailable":"Preview is unavailable for this TikTok video.","tiktok_download.preview.preparing":"Preparing preview...","tiktok_download.extension.title":"Install the browser extension for smoother TikTok downloads","tiktok_download.extension.body":"FreeSaveVideo extension helps reduce TikTok CDN blocks, keeps no-watermark downloads more stable, and can download through your browser when web preview is blocked.","tiktok_download.extension.chrome":"Add to Chrome","tiktok_download.extension.edge":"Add to Edge","tiktok_download.extension.zip":"ZIP package","tiktok_download.extension.later":"Later","tiktok_download.extension.trust.easy":"Easy to use","tiktok_download.extension.trust.safe":"Stable fallback","tiktok_download.open_link":"Open link","error.title":"Something went wrong","bilibili_download.extension.title":"Install the browser extension for smoother Bilibili long-video downloads","bilibili_download.extension.body":"FreeSaveVideo extension can download through your browser when Bilibili CDN blocks page fetches, which makes large direct downloads more stable.","xin
13pianchang.title":"Download with the browser extension","xinpianchang.body":"Xinpianchang requires browser verification. Open the work, complete verification, play the video, then download with FreeSaveVideo.","xinpianchang.install_title":"Install FreeSaveVideo Downloader","xinpianchang.install_body":"After installation, open the work, play the video and click the extension to download. Chrome and Edge are supported.","xinpianchang.installed":"The extension is installed. Open the work, play the video and click FreeSaveVideo Downloader to download.","xinpianchang.open":"Open the work","xinpianchang.close":"Close"},qc=Object.freeze(Object.defineProperty({__proto__:null,default:zd,points_preview:ri},Symbol.toStringTag,{value:"Module"})),li="🌟 Discover Amazing Videos",di="Premium content from top global creators",ci={all:"All Platforms"},ui={trending:"Trending",pinned:"Pinned",featured:"Featured",latest:"Latest"},pi={loading:"Loading...",parsing:"Parsing/Queued",still_parsing:"Still parsing, please wait a moment",error:"Load failed",empty:{title:"No videos",description:"No video content added yet"}},hi={videoCount:"{{count}} videos"},mi={copy:"📋 Copy",copied:"✓ Copied",copyTitle:"Copy video address",copyFailed:"Copy failed:",manualCopy:`Cannot copy automatically, please copy manually:
14{{url}}`,closeDialog:'Click "OK" to close this message',creator_batch:"More from creator",creator_batch_title:"{{name}} · Batch",load_more:"Load more"},gi={resources:"Discover Resources",beauty:"Discover Beauty"},bi={title:"Discover Resources",subtitle:"Browse categories and download from available links",empty:{title:"No resources yet",description:"No categories or links have been added"},empty_links:{title:"No links",description:"This category has no downloadable links yet"},select:{title:"Select a category",description:"Choose a category on the left to view links"},action:{downloading:"Downloading..."},batch_limit_hint:"Batch limit: {{max}}"},Bd={title:li,subtitle:di,filter:ci,section:ui,status:pi,account:hi,action:mi,menu:gi,resources:bi},xc=Object.freeze(Object.defineProperty({__proto__:null,account:hi,action:mi,default:Bd,filter:ci,menu:gi,resources:bi,section:ui,status:pi,subtitle:di,title:li},Symbol.toStringTag,{value:"Module"})),Ed={"banner.title":"This website is great, a little appreciation!","banner.subtitle":`donate to imput or share the
15joy of FreeSaveVideo with a friend`,"body.motivation":"FreeSaveVideo helps producers, educators, video makers, and many others to do what they love. it's a different kind of service that is made with love, not for profit.","body.no_bullshit":"we believe that the internet doesn't have to be scary, which is why FreeSaveVideo will never have ads or other kinds of malicious content. it's a promise that we firmly stand by. everything we do is built with privacy, accessibility, and ease of use in mind, making FreeSaveVideo available for everyone.","body.keep_going":"if you found FreeSaveVideo useful, please consider supporting our work! you can help us by making a donation or sharing FreeSaveVideo with a friend. every donation is highly appreciated and helps us keep working on FreeSaveVideo and other projects.","card.once":"one-time donation","card.recurring":"recurring donation","card.custom":"custom amount (from $2)","card.processor":"via {{value}}","card.option.5":"cup of coffee","card.option.10":"full size pizza","card.option.15":"full lunch","card.option.30":"lunch for two","card.option.50":"10kg of cat food","card.option.100":"one year of domains","card.option.200":"air fryer","card.option.500":"fancy office chair","card.option.1599":"base macbook pro","card.option.4900":"10,000 apples","card.option.7398":"maxed out macbook pro","card.option.8629":"a small plot of land","card.option.9433":"luxury hot tub","card.custom.submit":"donate custom amount","share.title":"share FreeSaveVideo with a friend","alternative.title":"alternative ways to donate","alt.copy":"{{ value }}. crypto wallet address. press to copy.","alt.open":"{{ value }}. press to open."},Tc=Object.freeze(Object.defineProperty({__proto__:null,default:Ed},Symbol.toStringTag,{value:"Module"})),_i=`still checking if you're not a bot. wait for the spinner to disappear and try again.
16
17if it takes too long, please let us know! we use cloudflare turnstile for bot protection and sometimes it blocks people for no reason.`,Hd={"import.no_data":"there's nothing to load from the file. are you sure it's the right one?","import.invalid":"your file doesn't have valid FreeSaveVideo settings to import. are you sure it's the right one?","import.unknown":`couldn't load data from the file. it may be corrupted or of wrong format. here's the error i got:
18
19{{ value }}`,"remux.corrupted":"couldn't read the metadata from this file, it may be corrupted.","remux.out_of_resources":"FreeSaveVideo ran out of resources and can't continue with on-device processing. this is related to limitations on your browser's side. try refreshing or reopening the app and trying again. some devices can only process tiny files.","tunnel.probe":"couldn't verify whether you can download this file. try again in a few seconds!",captcha_ongoing:_i,"api.auth.jwt.missing":"couldn't confirm whether you're not a robot because the processing server didn't receive the human access token. tr
19y again in a few seconds or reload the page!","api.auth.jwt.invalid":"couldn't confirm whether you're not a robot because your human access token expired and wasn't renewed. try again in a few seconds or reload the page!","api.auth.turnstile.missing":"couldn't confirm whether you're not a robot because the processing server didn't receive the human access token. try again in a few seconds or reload the page!","api.auth.turnstile.invalid":"couldn't confirm whether you're not a robot because your human access token expired and wasn't renewed. try again in a few seconds or reload the page!","api.auth.clerk.missing":"please sign in to download.","api.auth.clerk.invalid":"your sign-in session is invalid or expired. please sign in again.","api.user.disabled":"your account is disabled. contact support if you believe this is a mistake.","api.points.insufficient":"not enough points. you have {{ current }} and need {{ required }}.","api.points.unavailable":"points are not configured on this server. please contact the instance owner.","api.unreachable":"couldn't connect to the processing server. check your internet connection and try again.","api.timed_out":"the processing server took way too long to respond. it may be overwhelmed at the moment, try again in a few seconds!","api.rate_exceeded":"you're making way too many requests. try again in {{ limit }} seconds!","api.capacity":"FreeSaveVideo is at capacity and can't process your request at the moment. try again in a few seconds. if it still doesn't work, let us know and we'll try to help!","api.generic":"something went wrong and i couldn't get anything for you. try again in a few seconds, but if issue sticks, let us know and we'll try to help!","api.unknown_response":"couldn't parse the response from the server. this could be caused by a version mismatch. are you sure you're on the latest version of FreeSaveVideo?","api.service.unsupported":"this service is not supported yet. have you pasted the right link?","api.platform.unsupported":"this video platform is not supported yet. you can request it for future support.","api.douyin.user.unsupported":"Douyin profile pages are not supported yet. Please open the specific video and copy that video link, then try again.","api.service.disabled":"this service is supported by FreeSaveVideo, but it's disabled on this instance. try a link from another service!","api.link.invalid":"your link is invalid or this service is not supported yet. have you pasted the right link?","api.link.unsupported":"{{ service }} is supported, but i couldn't recognize your link. have you pasted the right one?","api.fetch.fail":"something went wrong when fetching info from {{ service }} and i couldn't find anything for you. are you sure your link works? if it does and you still see this error, let us know and we'll try to help!","api.wechat_channels.app_only":"this video can only be viewed inside WeChat, so it can't be downloaded from its shared link. please try another publicly accessible video.","api.fetch.critical":"the {{ service }} module returned an error that i don't recognize. try again in a few seconds, but if issue sticks, let us know!","api.fetch.empty":"couldn't find any media that i could download for you. are you sure you pasted the right link?","api.fetch.rate":"the FreeSaveVideo processing server got rate limited by {{ service }}. try again in about {{ limit }} seconds!","api.fetch.short_link":"couldn't get link info from the short link. are you sure it works? if it does and you still get this error, let us know, and we'll try to help!","api.tiktok.collection.unsupported":"this is a TikTok collection link, not a single video. open a specific video in the collection, copy its link, and try again. if TikTok also says the collection doesn't exist, it may have been deleted or made unavailable.","api.content.too_long":"the media you requested is too long. current duration limit is {{ limit }} minutes. try something shorter instead!","api.content.video.unavailable":"i can't access this video. it may be restricted on {{ service }}'s side. have you pasted the right link?","api.content.platform_restricted":"this type of {{ service }} link is restricted by the platform (for example, paid-membership or regional rights), so i can't download it. try a publicly available video link instead!","api.content.video.live":"this video is currently live, so i can't download it yet. wait for the live stream to finish, and then try again!","api.content.video.private":"this video is private, so i cannot access it. change its visibility or try another one!","api.content.video.age":"this YouTube video is age-restricted and requires signing in to YouTube to confirm your age. we can't download it right now, so please try a video without an age restriction. no points were deducted for this failed attempt.","api.content.video.region":"this video is region locked, and the processing server is in a different location. try another one!","api.youtube.disabled":"YouTube download service is temporarily unavailable. Please try again later.","api.youtube.link.unsupported":"YouTube channel pages are not supported yet. Copy the link to a specific YouTube video or a playlist, then try again.","api.content.post.unavailable":"couldn't find anything about this post. its visibility may be limited or it may not exist at all. make sure your link works and try again in a few seconds!","api.content.post.private":"this post is from a private account, so i can't access it. have you pasted the right link?","api.content.post.age":"this post is age-restricted, so i can't access it anonymously. have you pasted the right link?","api.youtube.codec":"youtube didn't return anything with your preferred video codec. try another one in settings!","queue.fetch.bad_response":"download server returned a bad response. try again in a few seconds.","queue.fetch.no_file_reader":"couldn't read the download stream. try again in a few seconds.","queue.fetch.empty_tunnel":"download returned an empty file. try again in a few seconds.","queue.fetch.corrupted_file":"downloaded file size doesn't match the expected size. try again.","queue.fetch.network_error":"network error while downloading. try again in a few seconds.","queue.fetch.crashed":"download worker crashed. try again in a few seconds.","queue.fetch.timeout":"download took too long and timed out. try again.","queue.fetch.stalled":"download stalled with no data received. try again.","queue.ffmpeg.probe_failed":"failed to probe the file. it might be corrupted or incompatible.","queue.ffmpeg.no_args":"ffmpeg worker started without arguments.","queue.ffmpeg.out_of_memory":"ffmpeg ran out of memory.","queue.ffmpeg.no_input_format":"could not determine input format.","queue.ffmpeg.no_audio_channel":"video has no audio channel.","queue.ffmpeg.no_input_type":"input file has no type.","a
19pi.youtube.decipher":`youtube updated its decipher algorithm and i couldn't extract the info about the video.
20
21try again in a few seconds, but if issue sticks, contact us for support.`,"api.youtube.login":"couldn't get this video because youtube labeled me as a bot. this is potentially caused by the processing instance not having any active account tokens. try again in a few seconds, but if it still doesn't work, tell the instance owner about this error!","api.youtube.token_expired":"couldn't get this video because the youtube token expired and i couldn't refresh it. try again in a few seconds, but if it still doesn't work, tell the instance owner about this error!","queue.refresh_required_title":"download queue failed to start","queue.refresh_required":"this usually happens after a frontend update with stale cache. refresh the page (Ctrl+F5) and try again.","queue.generic_error":"download worker failed to start. refresh the page and try again.","queue.worker_didnt_start":"download worker failed to start in time. refresh the page and try again.","api.membership.limit.exceeded":"membership fair-use limit reached. please try again later.","api.membership.limit.daily_exceeded":"Your daily member download limit has been reached ({{ used }}/{{ limit }}). It resets tomorrow at 00:00 Beijing time.","api.membership.limit.monthly_exceeded":"Your monthly member download limit has been reached ({{ used }}/{{ limit }}). It resets at 00:00 Beijing time on the first day of next month.","api.upstream.timeout":"The processing node did not respond in time. This may be a temporary link fluctuation or service congestion, not a problem with your video. Please try again shortly.","api.upstream.circuit_open":"The YouTube processing node is cooling down after a temporary failure. Please wait about 1 minute and try again.","api.upstream.unavailable":"No YouTube processing node is available right now. Please try again later.","api.bilibili.space.unsupported":"Bilibili space collection pages are not supported yet. Open one video inside the collection, copy that video link, and try again.","api.bilibili.list.missing_video":"This Bilibili creator video list does not identify a current video. Open one video in the list, then copy the URL containing bvid.","api.bilibili.cdn.expired":"This temporary Bilibili CDN link has expired or was rejected. Please paste the original Bilibili video page link instead.","api.bilibili.cdn.not_media":"This Bilibili CDN link did not return audio or video. Please paste the original Bilibili video page link instead.","api.bilibili.cdn.notice":"This is a temporary Bilibili CDN resource and may contain video or audio only. For a complete download, use the original Bilibili video page link.","api.upstream.network":"The processing link is temporarily unstable. Your video may still be fine. Please try again in a few seconds.","api.upstream.incomplete":"The processing node returned an incomplete response during a temporary link fluctuation. Please try again in a few seconds.","api.youtube.timeout":"YouTube parsing itself took longer than expected this time. The video may still be downloadable. Please try again later.","api.bilibili.collection_has_long_video":"This Bilibili collection contains videos longer than {{ limit }} minutes, so batch download is disabled. Open each video and download them one by one.","api.xinpianchang.browser_required":"Xinpianchang requires browser verification. Open the work, complete verification, play the video, then download with FreeSaveVideo.","api.magnific.browser_required":"Magnific blocked server access. Open the public free asset page and use the FreeSaveVideo browser extension. Premium assets and private creations are not supported."},Cc=Object.freeze(Object.defineProperty({__proto__:null,captcha_ongoing:_i,default:Hd},Symbol.toStringTag,{value:"Module"})),fi="Frequently Asked Questions (FAQ)",yi="Answers about watermark-free downloads, formats, points, and troubleshooting.",vi={title:"FAQ | FreeSaveVideo - Watermark-free video downloader",description:"FreeSaveVideo FAQ for Douyin/TikTok, Bilibili, Sohu Video, NicoNico, Kuaishou, Kugou Music, Haokan, Toutiao, Amazon Live, NAVER, Xiaohongshu, Instagram, X(Twitter), Facebook downloads. Learn about no-watermark saving, batch downloads, formats, points, and troubleshooting. It also supports public WeChat Channels videos and selectable multi-v
21ideo downloads from WeChat Official Account articles.",keywords:"FAQ, Douyin downloader, Bilibili downloader, Kuaishou downloader, Amazon Live, NAVER downloader, naver.me download, Xiaohongshu downloader, TikTok downloader, no watermark download, batch download, points, Haokan video downloader, Haokan download, Toutiao video downloader, Toutiao video download, Toutiao MP4 download, NicoNico downloader, nicovideo download, Sohu video downloader, Amazon Live downloader, Amazon Live replay download, amazon.com/live/video download, amazon vdp video download WeChat Channels video downloader, WeChat Official Account video download, download mp.weixin.qq.com video"},wi={title:"Quick links"},ki={placeholder:"Search FAQ (watermark, batch, points, failed…)",clear:"Clear",no_results:"No matching questions found."},Si={home:"Back to downloader",feedback:"Report an issue",youtube:"YouTube guide",account:"Account & points",directory:"Download directory",guides:"Browse all download guides",guide_suffix:"guide",download_suffix:"download page"},qi={basics:"Getting started",features:"Features & formats",points:"Account & points",troubleshooting:"Troubleshooting",privacy:"Policy & privacy"},xi={what_is:{q:"What is FreeSaveVideo?",a:`FreeSaveVideo is an online media downloader.
22Paste a share link, choose a mode, and download.
23It supports Douyin/TikTok, Bilibili, Sohu Video, NicoNico, Kuaishou, Kugou Music, Haokan, Toutiao, Amazon Live, NAVER, Xiaohongshu, Instagram, X(Twitter), Facebook, and more.`},how_to_use:{q:"How do I download a video (watermark-free)?",a:`1) Copy the share link
242) Paste it on the home page
253) Choose Auto / Audio / Muted
264) Click Parse/Download and save it.`},supported_platforms:{q:"Which platforms and link types are supported?",a:`Check the current supported services list and download directory for supported platforms and link types, including YouTube, Douyin/TikTok, Bilibili, Sohu Video, NicoNico, Kuaishou, Kugou Music, Haokan, Toutiao, Amazon Live, NAVER, Xiaohongshu, Instagram, X (Twitter), and Facebook. Only publicly accessible content is supported, not private, paid, or login-required content.
27Available quality, audio, and extra files depend on the platform, source post, and parsing result. Public WeChat Channels videos and selectable multi-video downloads from WeChat Official Account articles are also supported.`},youtube_supported:{q:"Does it support YouTube downloads?",a:"Yes. YouTube downloads are now supported directly. Just paste a YouTube link and download normally without browser scripts or plugins. If a specific link fails, please retry later or send feedback."},mobile_ios:{q:"Does it work on mobile? How do I save on iOS?",a:`Yes, it works on mobile/tablet/desktop.
28On iOS, if you can preview but cannot save, follow the built-in Siri Shortcuts instructions to save to Photos/Files from the share sheet.`},watermark_free:{q:"Will the downloaded video have a watermark?",a:`For platforms that provide a watermark-free source, we try to return a clean file by default.
29If the watermark is burned into the video or a platform changed its rules, it may not be removable.`},quality_options:{q:"Can I download HD/original quality? Why does quality vary?",a:`Quality depends on what the original post provides and platform limitations.
30If multiple options are available, pick a higher one. If not, the source may not offer alternatives.`},audio_only:{q:"Can I download audio-only or muted videos?",a:`Yes. Choose Audio for audio-only files, or Muted to remove the audio track.
31Supported formats vary by platform (for example MP3/M4A/MP4).`},batch_download:{q:"How do I batch download multiple links?",a:`Paste multiple links at once (separated by spaces or new lines).
32When batch mode is detected, you can process them together and track progress.`},playlist_collection:{q:"Do you support playlists/collections/series downloads?",a:`Yes. For supported links, the app will try to detect collections/episodes/playlists and offer a batch entry.
33If it fails to detect, paste each item link into batch mode.`},batch_save_location:{q:"Where did my video go after downloading?",a:`Single downloads: the file is usually saved by your browser. Press Ctrl+J to open the downloads list in Chrome, Edge, Firefox, or Opera, and check the browser's Downloads settings for the save folder. In Safari, use the downloads button in the toolbar; on Mac, Option+Command+L shows the downloads list.
34Batch downloads: if you chose a folder for automatic saving when the batch started, the videos are in that folder. Try to recall the path you selected, or check the saved folder name shown in the download queue. If you chose manual saving, or your browser does not support automatic folder saving, completed videos stay in the top-right download queue first. Click "Save" on each item; after that, the location follows your browser's download settings.
35Mobile/iOS: when sharing or using a system save panel, the file may be in Photos or the Files app under Downloads/Recents. If you close or refresh the page before saving queue items, temporary files may be lost and you may 
35need to download again.`},batch_browser_restart:{q:"Will collection downloads still exist after I close and reopen the browser?",a:"Usually no. After a browser restart, temporary queue data may be cleared. We recommend saving each item to disk immediately after the queue completes to avoid losing content. This behavior helps control browser memory usage."},batch_browser_compatibility:{q:"Which browsers are less friendly for collection downloads?",a:"Quark Browser is currently known to be less compatible with collection downloads and may fail to save or pause unexpectedly. We recommend using the latest Chrome for better reliability."},need_login:{q:"Why does it sometimes ask me to sign in?",a:`Basic downloads usually don't require an account.
36To reduce abuse and spam, features like issue reports, batch tasks, or points billing may require sign-in.`},points_how:{q:"What are points and how are they charged?",a:`If points are enabled on this site, downloads may consume points based on media duration: about 2 points per minute (rounded up).
37We check your balance before starting. If it's insufficient, you'll be prompted to purchase more.`},points_buy:{q:"Where can I check or buy points?",a:`Open the Account page to view your current balance and purchase options.
38After payment, the balance usually refreshes automatically.`},failed_parse:{q:"Parse failed or shows unsupported. What should I do?",a:`Make sure the link is publicly accessible (not private, paid, or login-required).
39Try re-copying the share link, refreshing the page, switching networks, or trying again later (platform rules change frequently).
40If it still fails, use “Report an issue” on the home page and include the link and error message.`},slow_download:{q:"Downloads are slow or keep failing. Any tips?",a:`Speed depends on your network and platform throttling.
41Try Wi‑Fi for long videos, switch networks, or retry later. If the issue persists, report it with the link and timestamp.`},private_paid:{q:"Can it download private/paid/login-required content?",a:`No. FreeSaveVideo only handles publicly accessible content.
42Please respect copyright and creators' rights.`},privacy_logs:{q:"Do you store my links or files? Is it safe?",a:`We never ask for your platform passwords.
43Links and media data are used temporarily during processing. Different deployments may keep minimal access logs for abuse prevention and debugging.
44This site may run third-party analytics/ads for operation and improvement.`},feedback_contact:{q:"How do I report issues or request new features?",a:`Use the in-app feedback entry for the fastest troubleshooting.
45You can also email: [email protected]`},wechat_supported:{q:"Can I download WeChat Channels and WeChat Official Account article videos?",a:"Yes. Paste a public WeChat Channels share link or an mp.weixin.qq.com Official Account article link. When an article contains multiple videos, choose the items you want before they enter the download queue. Private, deleted, and login-only content is not supported."}},Qd={title:fi,description:yi,seo:vi,toc:wi,search:ki,actions:Si,sections:qi,items:xi},Pc=Object.freeze(Object.defineProperty({__proto__:null,actions:Si,default:Qd,description:yi,items:xi,search:ki,sections:qi,seo:vi,title:fi,toc:wi},Symbol.toStringTag,{value:"Module"})),Ti="FreeSaveVideo",Ci="FreeSaveVideo",Pi="stable",Ri="or",Fi={title:"How to Download Videos Online with FreeSaveVideo",description1:"FreeSaveVideo lets you download online videos without installing software. Paste a supported platform link, including NAVER / Korean Naver links, and save available HD video when possible.",description2:"You can process single links, batch downloads, collection and playlist pages, then switch to audio-only or mute mode before saving."},Di={title:"Notice:",close:"Close notification",youtube_restriction:"YouTube direct downloads are now supported. If a specific link fails to parse, please retry later or send feedback."},Ii={finditbuddy:{title:"FinditBuddy helps you remember where things are and find them later",features:{1:"Smartly record where each item is placed",2:"Save room, shelf, box, and note details in seconds",3:"Search by item name when you forget where it was stored",4:"Keep home storage organized for daily essentials",5:"Spend less time looking for misplaced things"},visit:"Visit FinditBuddy"},yumcheck:{title:"Food ingredient analysis, photo automatic query and analysis",features:{1:"Take photos of ingredient lists for one-click ingredient analysis and health risk assessment",2:"Compare food additives with EU standards for multi-dimensional understanding",3:"Scan food standard numbers for quick interpretation of regulatory information",4:"Intelligent analysis of blood test reports, making blood reports understandable for ordinary people"},visit:"Visit YumCheck"}},Ai={install_prompt:"This website supports installation to desktop",install:"Install",close:"Close"},Mi={prompt:"View this page in",switch:"Switch language",dismiss:"Dismiss language suggestion"},Vi={home:{title:"Playlist & Batch Video Downloader - FreeSaveVideo",description:"Download supported public playlists, collections, and multiple video links in one place. Review batch tasks, retry failures, choose available quality, and save to a folder in compatible browsers. It also supports public WeChat Channels videos and selectable multi-v
45ideo downloads from WeChat Official Account articles.",keywords:"playlist downloader, batch video downloader, download multiple videos, YouTube playlist downloader, bulk video downloader, save videos to folder, online video downloader WeChat Channels video downloader, WeChat Official Account video download, download mp.weixin.qq.com video"},transfer:{title:"Private Chat, Disappearing Texts & File Transfer | FreeSaveVideo",description:"Private browser chat inside a video tools site. Optional texts clear about 30 seconds after opening. No app needed. Both stay online; browser history remains.",keywords:"temporary private chat, disappearing texts, browser chat, no signup chat, one-to-one chat, file transfer, cross-device sharing, WeChat chat history, LINE chat history"},discover:{title:"Discover Trending Videos - Beauty, Funny, Viral Clips | Daily Updates",description:"Collection of the hottest videos on the web. Curated beauty videos, funny clips, and viral trends. Updated daily.",keywords:"trending videos, beauty videos, funny videos, viral clips, hot videos, video recommendations"}},Gd={cobalt:Ti,meowbalt:Ci,beta:Pi,or:Ri,"embed.description":"Download videos for free from YouTube, TikTok, Bilibili, Sohu Video, NicoNico, Amazon Live, NAVER, Instagram, Threads, Facebook and Twitter. No registration required. Fast, watermark-free downloads.",guide:Fi,notification:Di,promotions:Ii,pwa:Ai,language_suggestion:Mi,seo:Vi},Rc=Object.freeze(Object.defineProperty({__proto__:null,beta:Pi,cobalt:Ti,default:Gd,guide:Fi,language_suggestion:Mi,meowbalt:Ci,notification:Di,or:Ri,promotions:Ii,pwa:Ai,seo:Vi},Symbol.toStringTag,{value:"Module"})),Wi="Download History",ji="Clear History",Oi="No history yet",Ui="Download Again",Li="Copy Link",Ni="Remove",Kd={title:Wi,clear:ji,empty:Oi,download_again:Ui,copy:Li,remove:Ni},Fc=Object.freeze(Object.defineProperty({__proto__:null,clear:ji,copy:Li,default:Kd,download_again:Ui,empty:Oi,remove:Ni,title:Wi},Symbol.toStringTag,{value:"Module"})),$i={desc:"Report download issues and suggestions."},Yi={supported:{title:"Popular platforms in one place",desc:"Use the same workflow for supported public links across mobile and desktop."},collection:{title:"Collection / playlist download",desc:"Auto-detect collection, season, and playlist links and queue the full set when supported. Example links: Bilibili multi-part or collection pages, TikTok playlist links, and YouTube playlist links such as https://www.youtube.com/playlist?list=PLsyeobzWxl7poL9JTVyndKe62ieoN-MZ3"},batch:{title:"Batch download",desc:"Paste multiple links separated by spaces or line breaks and process them together."},watermark:{title:"Watermark-free download",desc:"Save clean video files when the platform provides no-watermark sources."},audio:{title:"Audio-only and mute mode",desc:"Switch between auto, audio-only, and mute mode before downloading."},aria:"Download capabilities"},zi={aria:"Low points reminder",title:"Points running low",text:"Click to learn how to earn more points.",cta:"Go to account",points_label:"points",close:"dismiss"},Bi={magnific:{name:"Magnific Free Media Downloader",desc:"Save public images and available video previews from Magnific pages explicitly marked free. Premium assets, private creations, and credit-based exports are excluded."},title:"Watermark-Free Download from Popular Platforms",description:"Supports publicly accessible content from the platforms shown in the supported services list, including YouTube, TikTok, Bilibili, Sohu Video, NicoNico, Kuaishou, Weibo, Amazon Live, NAVER, Xiaohongshu, Instagram, Threads, X (Twitter), and Facebook. Save available formats on mobile or desktop; quality depends on the source and parsing result.",douyin:{name:"TikTok/Douyin Downloader",desc:"Supports domestic and international versions of TikTok/Douyin. One-click watermark removal, keeping HD audio and video."},bilibili:{name:"Bilibili Video Downloader",desc:"Supports anime, uploader submissions, and course videos. Preserves clarity and subtitles."},iqiyi:{name:"iQIYI Video Downloader",desc:"Download public, free iQIYI videos as playable MP4 files while excluding separate player ad clips."},kuaishou:{name:"Kuaishou Watermark Remover",desc:"Copy Kuaishou links to analyze. Batch downloading is more efficient."},haokan:{name:"Haokan Video Downloader",desc:"Paste a Haokan/Baidu video link to save available MP4 quality variants, including HD options when provided by the source."},toutiao:{name:"Toutiao Video Downloader",desc:"Paste a public Toutiao video link to save available MP4 quality variants, including HD options when the source provides them."},sohu:{name:"Sohu Video Downloader",desc:"Download public Sohu Video pages as MP4, with audio-only and mute modes available."},weibo:{name:"Weibo Video Downloader",desc:"Copy the Weibo video address or t.cn short link to extract available MP4 quality options."},amazon:{name:"Amazon Live Downloader",desc:"Save public Amazon Live replay videos from amazon.com/live/video or amazon.com/vdp links with available HLS quality options."}
45,xiaohongshu:{name:"Xiaohongshu Video Saver",desc:"Removes in-app watermarks, keeping cover images and original HD sound."},instagram:{name:"Instagram Reels Downloader",desc:"Supports Reels, posts, and story videos. Save directly to your local device."},youtube:{name:"YouTube Video Downloader",desc:"Direct YouTube video and audio downloads are now supported. Paste a link and download instantly. Supports Shorts and multiple quality options."},facebook:{name:"Facebook Video Downloader",desc:"Parses public Facebook videos and Reels and shows the resolutions available from the source. Private or login-required content is not supported."},twitter:{name:"X (Twitter) Video Saver",desc:"Copy tweet links to extract original videos while maintaining clarity."},naver:{name:"NAVER Video Downloader",desc:"Save public NAVER videos from naver.me and m.naver.com/shorts links."},niconico:{name:"NicoNico Video Downloader",desc:"Save public NicoNico watch and shorts videos with available HLS quality options."},threads:{name:"Threads Video Downloader",desc:"Paste a public Threads post link to save available videos or photos directly."}},Ei={videorecord:{desc:"Create, move, and resize slides, then record whiteboard tutorials with camera overlay in your browser. No install required."},random_video:{desc:"Randomly match one online user for a 10-minute 1v1 video chat."},remux:{desc:"remuxing often fixes compatibility issues with old software. it's fast, lossless, and everything is processed on-device."},file_transfer:{desc:"The best way to transfer files between devices without installing apps. Secure P2P file sharing, cross-platform clipboard sync. Fast, free, and private."},discover_trends:{desc:"Collection of the hottest videos on the web. Curated beauty videos, funny clips, and viral trends. Updated daily."}},Hi={eyebrow:"Playlist and batch video downloader",title:"Download Playlists and Multiple Videos in One Place",subtitle:"Supports TikTok, YouTube, Instagram, Facebook, X, Bilibili, WeChat, Reddit, Pinterest, Vimeo, Twitch, SoundCloud, and more. Paste one link, a playlist, or multiple links.",trust:"Single-video downloads still work. You can also batch links, download supported YouTube playlists, extract audio, and save to a folder in compatible browsers."},Qi={title:"More tools",description:"Need more than downloading? These tools stay one tap away without taking over the homepage."},Gi={badge:"A FreeSaveVideo ecosystem product",title:"Learn languages from video without constantly pausing to look up words",description:"NoPainStudy offers instant word definitions, dynamic subtitles, speaking practice, and smart review.",action:"Explore NoPainStudy"},Ki={badge:"Free ? Chrome",title:"Download directly from any webpage",description:"Found a video or image on a site like Taobao? Use the extension to detect and download it in one click.",install:"Install Chrome extension",installed:"Chrome extension installed",checking:"Checking extension..."},Xd={feedback:$i,capabilities:Yi,points_balloon:zi,platforms:Bi,cards:Ei,hero:Hi,tools:Qi,ecosystem:Gi,extension:Ki},Dc=Object.freeze(Object.defineProperty({__proto__:null,capabilities:Yi,cards:Ei,default:Xd,ecosystem:Gi,extension:Ki,feedback:$i,hero:Hi,platforms:Bi,points_balloon:zi,tools:Qi},Symbol.toStringTag,{value:"Module"})),Xi="invitation",Ji="sign up through your friend's link.",Zi="what you can do here",ea="supported platforms and download modes are listed below.",ta="supported video platforms",oa="invited by",ia="your friend",aa="inviter avatar",na="after you sign up, you receive 20 bonus points and your inviter receives 50 points.",sa="create your account",ra="sign up now to receive 20 bonus points automatically.",la="Why sign in?",da="An account keeps your credits available and helps prevent automated abuse.",ca="Google sign-in privacy:",ua="authentication is handled securely by Google and Clerk; FreeSaveVideo never receives your Google password or posts to your account.",pa="sign up",ha="sign in",ma="checking invitation",ga="you're signed in. we'll try to register this invite automatically.",ba="processing...",_a="success! you received 20 bonus points and your inviter received 50 points.",fa="go to home",ya="this account has already used an invite link.",va="invites only w
45ork for newly created accounts.",wa="this invite link is invalid.",ka="you can't use your own invite link.",Sa="couldn't load inviter info.",qa="something went wrong while claiming the invite.",xa="retry",Jd={title:Xi,subtitle:Ji,features_title:Zi,features_subtitle:ea,supported_download_title:ta,invited_by_label:oa,invited_by_unknown:ia,inviter_avatar_alt:aa,rule:na,cta_title:sa,cta_subtitle:ra,trust_auth_title:la,trust_auth_body:da,trust_privacy_title:ca,trust_privacy_body:ua,sign_up:pa,sign_in:ha,processing_title:ma,signed_in_hint:ga,claiming:ba,claimed:_a,go_home:fa,already:ya,too_old:va,invalid:wa,self:ka,lookup_error:Sa,error:qa,retry:xa},Ic=Object.freeze(Object.defineProperty({__proto__:null,already:ya,claimed:_a,claiming:ba,cta_subtitle:ra,cta_title:sa,default:Jd,error:qa,features_subtitle:ea,features_title:Zi,go_home:fa,invalid:wa,invited_by_label:oa,invited_by_unknown:ia,inviter_avatar_alt:aa,lookup_error:Sa,processing_title:ma,retry:xa,rule:na,self:ka,sign_in:ha,sign_up:pa,signed_in_hint:ga,subtitle:Ji,supported_download_title:ta,title:Xi,too_old:va,trust_auth_body:da,trust_auth_title:la,trust_privacy_body:ua,trust_privacy_title:ca},Symbol.toStringTag,{value:"Module"})),Ta="member access",Ca="{{feature}} is included with membership",Zd={eyebrow:Ta,title:Ca,"reason.membership_required":"Join as a member to start using this feature.","reason.entitlement_missing":"Your current membership does not include this feature. View your membership options or refresh your plan status.","feature.ai_video_studio":"AI video studio","feature.video_recording":"video recording","feature.random_chat":"random chat","benefit.ai_video_studio":"AI highlight clips with translated subtitles","benefit.video_recording":"Full browser video recording studio","benefit.random_chat":"Member-only random video chat","note.ai_video_studio":"AI video processing is subject to fair-use limits.","note.unmetered":"No usage quota is applied to this feature.","action.not_now":"not now","action.sign_in":"sign in","action.view_membership":"view membership","action.close":"close","error.title":"membership check failed","error.body":"We could not verify your membership right now. Please try again."},Ac=Object.freeze(Object.defineProperty({__proto__:null,default:Zd,eyebrow:Ta,title:Ca},Symbol.toStringTag,{value:"Module"})),ec={"update.title":"update is available!","update.subtext":"press to reload"},Mc=Object.freeze(Object.defineProperty({__proto__:null,default:ec},Symbol.toStringTag,{value:"Module"})),Pa="queue",Ra={running:{fetch:"fetching",remux:"remuxing",encode:"encoding"},starting:{fetch:"starting fetch",remux:"starting remux",encode:"starting encode"},retrying:"retrying",waiting:"waiting",auto_saving:"saving to your device...",auto_saved:"Saved to: {{ value }}",auto_save_failed:"Automatic save failed. Click Save to keep this file."},Fa="There are currently {{ count }} videos in queue. Please wait for download.",Da="Successfully downloaded {{ count }} videos in this batch.",Ia="Save all downloaded",Aa="Save clicked",Ma="Important: after videos finish, click Save for any item that was not auto-saved. If you chose a folder for batch auto-save, look in that folder first; otherwise check browser downloads (Ctrl+J) or your device Downloads folder.",Va='Batch download is running. Keep this device awake until every item finishes, then click "Save" for the completed files.',Wa="Batch download is running. Keep this device awake; each completed file will be saved to your selected folder automatically.",ja="Save started",Oa="The network is temporarily slow. The download is still waiting for data and will continue automatically when the connection recovers.",tc={title:Pa,state:Ra,waiting_notice:Fa,success_notice:Da,save_all_done:Ia,save_clicked:Aa,manual_save_warning:Ma,keep_awake_warning:Va,keep_awake_auto_save_warning:Wa,save_started:ja,network_stalled_waiting:Oa},Vc=Object.freeze(Object.defineProperty({__proto__:null,default:tc,keep_awake_auto_save_warning:Wa,keep_awake_warning:Va,manual_save_warning:Ma,network_stalled_waiting:Oa,save_all_done:Ia,save_clicked:Aa,save_started:ja,state:Ra,success_notice:Da,title:Pa,waiting_notice:Fa},Symbol.toStringTag,{value:"Module"})),Ua="Peer profile",La="Last session ended",oc={"meta.title":"Video Chat With People Across Asia","meta.description":"Meet members across Asia with country, language, and gender preferences. Start with a private text icebreaker and switch to video by mutual consent.","header.title":"Meet and video chat with people across Asia","header.subtitle":"Choose your preferences, break the ice by text, and start a 10-minute video chat when both people are ready.","header.membership_disclosure":"Random Chat is available to active FreeSaveVideo members.","community.eyebrow":"Members-only cross-cultural chat","community.features_label":"Random Chat highlights","community.feature_members":"Find people by country and language","community.feature_text_first":"Text before video","community.feature_filters":"Country, language and gender filters","community.image_alt":"Illustrative community preview featuring adult Asian women in natural selfie portraits","community.preview_title":"Meet people across Asia","community.preview_disclaimer":"Illustrative preview - not actual user profiles. Availability varies.","brand.title":"FreeSaveVideo Random","brand.subtitle":"1v1 video chat","brand.searching_users":"Searching online users...","brand.users_online":"Users are online now","notice.clerk_disabled":"Clerk is not enabled in this environment.","notice.checking_eligibility":"Checking login eligibility...","notice.signin_required":"Please sign in first.","notice.paid_required":"No paid order found. Please complete a payment first.","notice.n
45ot_eligible":"You are not eligible to use random chat at the moment.","error.check_eligibility_failed":"Failed to check chat eligibility","error.manager_not_initialized":"Chat manager not initialized","error.missing_clerk_token":"Missing Clerk token","error.start_matching_failed":"Failed to start matching","error.next_match_failed":"Failed to match next user","error.toggle_fullscreen_failed":"Failed to toggle fullscreen","error.media_failed":"Camera or microphone access failed","action.sign_in":"Sign In","action.go_to_account":"Go to Account","action.exit_fullscreen":"Exit Fullscreen","action.fullscreen":"Fullscreen","action.settings":"Settings","action.start":"Start matching","action.stop":"Stop","action.cancel_matching":"Cancel matching","action.end_chat":"End chat","action.next":"Next","action.close":"Close","action.send":"Send","action.invite_video":"Invite to video","action.accept_video":"Accept and start video","action.decline_video":"Decline and end match","connection.connected":"Connected","connection.disconnected":"Disconnected","status.in_call":"In call","status.icebreaker":"Text icebreaker","status.video_connecting":"Connecting video...","status.searching":"Searching...","status.ready":"Ready","field.i_am":"I am","field.target_gender":"Target gender","field.country":"Country","field.language":"Language","language.auto":"Auto","settings.title":"Chat Settings","settings.auto_next":"Auto queue next match","settings.mirror_local":"Mirror local preview","settings.mute_remote":"Mute remote audio by default","settings.show_safety":"Show safety reminder","settings.text_icebreaker":"Text before video","settings.text_icebreaker_detail":"Text is skipped only when the other member also chooses to skip it.","icebreaker.title":"Say hello before video","icebreaker.subtitle":"You have up to 3 minutes. Video starts only after both people agree.","icebreaker.starter":"Try asking: What is your favorite local food?","icebreaker.invite_received":"Your match invited you to start video.","icebreaker.decline_warning":"Declining ends this match; text cannot continue.","icebreaker.placeholder":"Write a short introduction...","icebreaker.invite_sent":"Video invitation sent","icebreaker.camera_off":"Camera is off","icebreaker.camera_off_detail":"It turns on only when you invite or accept video.","safety.main":"Keep your face visible and avoid sharing personal contact details.","safety.time_limit":"Sessions are time-limited to 10 minutes.",peer_profile:Ua,last_session_ended:La,"gender.self.unspecified":"Unspecified","gender.self.male":"Male","gender.self.female":"Female","gender.target.any":"Any","gender.target.male":"Male","gender.target.female":"Female","country.any":"Any Asian country","country.us":"United States","country.cn":"China","country.th":"Thailand","country.jp":"Japan","country.kr":"Korea","country.de":"Germany","country.fr":"France","country.es":"Spain","country.ru":"Russia","country.vn":"Vietnam","country.id":"Indonesia","seo.asia.title":"Practice English in Real 1v1 Video Chats","seo.asia.intro":"Use country and language preferences to find members from Europe and North America, then practise English in relaxed ten-minute conversations.","seo.asia.region_title":"English practice across time zones","seo.asia.region_body":"Choose the United States or a European country and turn a short conversation into practical speaking and listening experience.","seo.western.title":"Meet People Across Asia in Random Video Chat","seo.western.intro":"Discover cross-cultural conversations with members from China, Japan, Korea, Thailand and Vietnam through private 1v1 video chat.","seo.western.region_title":"One chat, many Asian cultures","seo.western.region_body":"Explore everyday life, languages and perspectives across Asia. Matching depends on who is available and the preferences both people choose.","seo.filters_body":"Set country, language and gender preferences before matching. Text chat lets both people break the ice before turning on video.","seo.faq_title":"Random video chat FAQ","seo.membership_question":"Who can use random video chat?","seo.safety_question":"How do private video chat sessions work?","action.report":"Report","age.confirm_label":"I confirm that I am at least 18 years old","age.confirm_detail":"Random Chat is for adults only. This confirmation is saved to your account.","age.required_error":"Confirm that you are at least 18 years old before matching.","age.confirm_failed":"We could not save your age confirmation. Please try again.","report.title":"Report this member","report.subtitle":"Tell us what happened. Submitting ends this match.","report.reason":"Reason","report.inappropriate_content":"Inappropriate content","report.harassment":"Harassment or abusive behavior","report.suspected_minor":"Suspected underage user","report.spam_or_scam":"Spam or scam","report.other":"Other","report.details":"Additional details (optional)","report.ends_match":"This report ends the chat and prevents you from matching with this member again.","report.submit":"Submit report and end chat","why.eyebrow":"One membership, more ways to connect","why.title":"Why does FreeSaveVideo offer Random Chat?","why.body":"FreeSaveVideo helps members discover and understand online culture. Random Chat extends that purpose from saving media to live, cross-cultural conversation: members can practise a language, exchange everyday perspectives and meet people beyond their usual feed. It is a separate, optional members-only feature.","safe.eyebrow":"Safety and control","safe.title":"Safe by design","safe.intro":"Random Chat is built around clear consent, short sessions and controls that stay available throughout the conversation.","safe.members.title":"Adults and members only","safe.members.body":"An active membership and an 18+ confirmation are required before matching.","safe.camera.title":"Camera off by default","safe.camera.body":"Your camera stays off during the text icebreaker.","safe.consent.title":"Video needs consent","safe.consent.body":"Video starts only after an invitation is sent and accepted.","safe.limit.title":"Short sessions","safe.limit.body":"Text icebreakers last up to 3 minutes and video sessions up to 10 minutes.","safe.leave.title":"Leave at any time","safe.leave.body":"End the current match or move to the next person whenever you choose.","safe.report.title":"Report and avoid rematches","safe.report.body":"A report ends the match, prevents another match with that member and enters the review queue.","faq.who.question":"Who can use Random Chat?","faq.who.answer":"Active FreeSaveVideo members who are at least 18 years old and confirm the age requirement.","faq.camera.question":"Do I have to turn on my camera immediately?","faq.camera.answer":"No. Your camera stays off until you send or accept a video invitation.","faq.country.question":"Can I choose which country I meet people from?","faq.country.answer":"You can set country, language and gender preferences, although matches depen
45d on who is online and compatible preferences.","faq.duration.question":"How long does a chat last?","faq.duration.answer":"The optional text icebreaker lasts up to 3 minutes. Video sessions are limited to 10 minutes.","faq.price.question":"Is Random Chat free?","faq.price.answer":"No. An active FreeSaveVideo membership is required. Random Chat sessions do not consume points; available plans, prices and billing terms are shown on the account page.","faq.report.question":"How do I report someone?","faq.report.answer":"Select Report during a chat, choose a reason and submit. The match ends immediately, you will not be matched with that member again, and the report is sent for review.","scenarios.eyebrow":"A simple way to begin","scenarios.title":"What can you talk about in 10 minutes?","scenarios.intro":"You do not need a perfect introduction. Start with one easy question and let the conversation develop naturally.","scenarios.first_meeting.title":"Meet someone new","scenarios.first_meeting.prompt_1":"Where are you joining from?","scenarios.first_meeting.prompt_2":"What do you enjoy doing in your free time?","scenarios.practice.title":"Discover everyday culture","scenarios.practice.prompt_1":"Talk about food, music, travel or daily life.","scenarios.practice.prompt_2":"Ask how something is different where they live.","scenarios.switch.title":"Meet another partner","scenarios.switch.prompt_1":"Conversation not clicking? End it anytime and meet someone else."},Wc=Object.freeze(Object.defineProperty({__proto__:null,default:oc,last_session_ended:La,peer_profile:Ua},Symbol.toStringTag,{value:"Module"})),Na="drag or select a file",$a="supported formats: {{ formats }}.",ic={title:Na,"title.drop":"drop the file here!",accept:$a},jc=Object.freeze(Object.defineProperty({__proto__:null,accept:$a,default:ic,title:Na},Symbol.toStringTag,{value:"Module"})),Ya="remuxing often fixes compatibility issues with old software. it's fast, lossless, and everything is processed on-device.",za={title:"convert video and extract audio",subtitle:"turn MP4 into MP3 or convert between common video formats"},Ba={upload:"choose files",upload_hint:"click to select or drop files below; batch selection is supported",choose_output:"choose output",process_download:"convert and download"},Ea={title:"video converter & audio extractor",description:"extract audio from video files and convert video formats like avi to mp4 directly in your browser. local processing, no upload.",keywords:"video converter, audio extractor, avi to mp4, extract audio from video, browser ffmpeg, local video processing, Video Converter MP4 to MP3, Free MP3 converter, online audio converter"},Ha={extract_audio:"extract audio",convert_video:"convert video"},Qa={output_format:"output format",bitrate:"bitrate",target_format:"target format",mode:"mode",input:"input"},Ga={fast:"fast (copy first)",compatible:"compatible (always transcode)"},Ka={start:"start processing",start_extract:"extract",start_convert:"convert to",cancel:"cancel",save_file:"download file",remove:"remove",clear_done:"clear done"},Xa={local_only:"files are processed locally in your browser and are not uploaded to the server.",format_mp3:"MP3 offers the widest playback and sharing compatibility.",format_m4a:"M4A usually keeps good quality in a smaller file.",format_wav:"WAV is uncompressed audio and produces a larger file.",keep_open:"the page may briefly stop responding while processing. keep it open; larger files may take a minute or longer."},Ja={batch:"batch progress",processing:"processing",preparing:"preparing conversion; first start may take a few seconds...",extracting:"extracting",converting:"converting to",complete_ready:"conversion complete, ready to download"},Za={queued:"queued",processing:"processing",done:"done",error:"error"},en={no_files:"no files in queue yet. drop one or more files to begin."},tn={cancelled:"processing cancelled.",out_of_memory:"browser ran out of memory. try a smaller file or close other tabs.",no_audio_stream:"this file has no audio stream to extract.",no_video_stream:"this file has no video stream to convert.",no_storage:"this browser cannot provide temporary storage for local processing.",generic:"processing failed. try another format or switch to compatible mode."},ac={description:Ya,hero:za,steps:Ba,seo:Ea,modes:Ha,labels:Qa,mode:Ga,buttons:Ka,tips:Xa,progress:Ja,status:Za,empty:en,errors:tn},Oc=Object.freeze(Object.defineProperty({__proto__:null,buttons:Ka,default:ac,description:Ya,empty:en,errors:tn,hero:za,labels:Qa,mode:Ga,modes:Ha,progress:Ja,seo:Ea,status:Za,steps:Ba,tips:Xa},Symbol.toStringTag,{value:"Module"})),on="request a video platform | FreeSaveVideo",an="Suggest a video platform for FreeSaveVideo and vote for the platforms you want supported next.",nn="platform wishlist",sn="what should we support next?",rn="Submit a video platform, see what other people requested, and vote for the platforms that matter to you.",ln="platform URL or domain",dn="https://example.com/video/123",cn="checking…",un="check platform",pn="This platform is already supported. Try a specific public video URL on the download page.",hn="Someone already requested this platform. You can vote for it instead.",mn="Enter a valid public website URL or domain.",gn="We could not submit this platform right now. Please try again.",bn="Platform request created. Your first vote was added automatically.",_n="visit platform",fn="submit request",yn="view details",vn="voted",wn="vote",kn="We could not update your vote. Please try again.",Sn="community requests",qn="Browse the platforms people want FreeSaveVideo to support.",xn="search domains",Tn="sort requests",Cn="most votes",Pn="newest",Rn="filter by status",Fn="all statuses",Dn="under review",In="planned",An="supported",Mn="not currently possible",Vn="loading requests…",Wn="No platform requests match these filters yet.",jn="{{ c
45ount }} votes",On="Last vote: {{ value }}",Un="previous",Ln="next",Nn="This platform request could not be found.",$n="back to requests",Yn="team update",zn="votes",Bn="request this platform",En="We could not load platform requests. Please try again.",nc={meta_title:on,meta_description:an,eyebrow:nn,title:sn,subtitle:rn,input_label:ln,input_placeholder:dn,checking:cn,check:un,already_supported:pn,already_requested:hn,invalid_url:mn,submit_error:gn,created:bn,visit_platform:_n,submit:fn,view_details:yn,voted:vn,vote:wn,vote_error:kn,list_title:Sn,list_subtitle:qn,search_placeholder:xn,sort_label:Tn,sort_votes:Cn,sort_newest:Pn,status_label:Rn,status_all:Fn,status_pending:Dn,status_planned:In,status_supported:An,status_rejected:Mn,loading:Vn,empty:Wn,vote_count:jn,last_vote:On,previous:Un,next:Ln,not_found:Nn,back_to_list:$n,admin_note:Yn,votes:zn,download_cta:Bn,load_error:En},Uc=Object.freeze(Object.defineProperty({__proto__:null,admin_note:Yn,already_requested:hn,already_supported:pn,back_to_list:$n,check:un,checking:cn,created:bn,default:nc,download_cta:Bn,empty:Wn,eyebrow:nn,input_label:ln,input_placeholder:dn,invalid_url:mn,last_vote:On,list_subtitle:qn,list_title:Sn,load_error:En,loading:Vn,meta_description:an,meta_title:on,next:Ln,not_found:Nn,previous:Un,search_placeholder:xn,sort_label:Tn,sort_newest:Pn,sort_votes:Cn,status_all:Fn,status_label:Rn,status_pending:Dn,status_planned:In,status_rejected:Mn,status_supported:An,submit:fn,submit_error:gn,subtitle:rn,title:sn,view_details:yn,visit_platform:_n,vote:wn,vote_count:jn,vote_error:kn,voted:vn,votes:zn},Symbol.toStringTag,{value:"Module"})),Hn="paste",Qn="auto",Gn="audio",Kn="mute",sc={paste:Hn,"paste.long":"paste and download",auto:Qn,audio:Gn,mute:Kn,"input.placeholder":"paste the link here","batch.detected":"detected {{ count }} links — batch mode","terms.note.agreement":"by continuing, you agree to","terms.note.link":"terms and ethics of use","services.title":"supported services","services.title_show":"show supported services","services.title_hide":"hide supported services","services.disclaimer":"FreeSaveVideo is not affiliated with any of the services listed above.","tutorial.title":"how to save on ios?","tutorial.intro":"to save media conveniently on ios, you'll need to use a companion siri shortcut from the share sheet.","tutorial.step.1":"add companion siri shortcuts:","tutorial.step.2":`press the "share" button in FreeSaveVideo's saving dialog.`,"tutorial.step.3":"select the respective shortcut in the share sheet.","tutorial.outro":"these shortcuts will work only from the FreeSaveVideo app, sharing links from other apps will not work.","tutorial.shortcut.photos":"to photos","tutorial.shortcut.files":"to files","batch.too_many":"too many links: {{ count }} (max {{ max }})","wechat.notice.title":"WeChat browser compatibility notice","wechat.notice.body":"You are using the WeChat in-app browser. Downloads and Google sign-in can be blocked here. Please open this site in Chrome or Edge.","wechat.notice.copy_action":"Copy this site link and open in another browser","wechat.notice.copied_title":"Link copied","wechat.notice.copied_body":"In WeChat, tap the top-right menu and choose Open in Browser, then paste this link in Chrome or Edge.","wechat.notice.copy_failed_title":"Copy failed","wechat.notice.copy_failed_body":"Please copy the current page URL manually, then open it in Chrome or Edge.","location.summary":"Where is my video saved?","location.default":"If you did not choose a folder, check the browser downloads list or your device Downloads folder.","location.desktop":"Desktop: click the browser download icon or press Ctrl+J, then open the file or its folder.","location.ios":"iPhone/iPad: open the Files app and check Downloads, or the folder Safari asked you to choose.","location.android":"Android: check the download notification, Chrome Downloads, or Files > Downloads.","location.wechat":"In WeChat or in-app browsers, downloads may be blocked. Open this page in Chrome or Safari if you cannot find the file.","location.after_click":"After you click Download, the browser may ask where to save it. If you choose a folder, look there first.","location.batch_auto":"For batch auto-save, videos are saved to the folder you selected when starting the batch."},Lc=Object.freeze(Object.defineProperty({__proto__:null,audio:Gn,auto:Qn,default:sc,mute:Kn,paste:Hn},Symbol.toStringTag,{value:"Module"})),Xn="theme",Jn="accessibility",Zn="language",rc={"page.appearance":"appearance","page.privacy":"privacy","page.video":"video","page.audio":"audio","page.download":"downloading","page.local":"local processing","page.advanced":"advanced","page.debug":"debug information","page.instances":"instances","section.general":"general","section.save":"save",theme:Xn,"theme.auto":"auto","theme.light":"light","theme.dark":"dark","theme.description":"auto theme switches between light and dark themes depending on your device's dis
45play mode.","video.quality":"video quality","video.quality.max":"8k+","video.quality.2160":"4k","video.quality.1440":"1440p","video.quality.1080":"1080p","video.quality.720":"720p","video.quality.480":"480p","video.quality.360":"360p","video.quality.240":"240p","video.quality.144":"144p","video.quality.description":"if preferred video quality isn't available, next best is picked instead.","video.youtube.codec":"youtube video codec and container","video.youtube.codec.description":`h264: best compatibility, average bitrate. max quality is 1080p. 
46av1: best quality, efficiency, and bitrate. supports 8k & HDR. 
47vp9: same quality & bitrate as av1, but file is approximately two times bigger. supports 4k & HDR.
48
49av1 and vp9 aren't as widely supported as h264.`,"video.twitter.gif":"twitter/x","video.twitter.gif.title":"convert looping videos to GIF","video.twitter.gif.description":"GIF conversion is inefficient, converted file may be obnoxiously big and low quality.","video.tiktok.h265":"tiktok","video.tiktok.h265.title":"prefer HEVC/H265 format","video.tiktok.h265.description":"allows downloading videos in 1080p at cost of compatibility.","audio.format":"audio format","audio.format.best":"best","audio.format.mp3":"mp3","audio.format.ogg":"ogg","audio.format.wav":"wav","audio.format.opus":"opus","audio.format.description":`all formats but "best" are converted, meaning that there'll be some quality loss. audio is not reencoded only when "best" format is selected.`,"audio.bitrate":"audio bitrate","audio.bitrate.kbps":"kb/s","audio.bitrate.description":"bitrate applies only to audio conversion. FreeSaveVideo can't improve the source audio quality, so choosing a bitrate over 128kbps may inflate the file size with no audible difference. perceived quality may vary by format.","audio.youtube.dub":"youtube","audio.youtube.dub.title":"use browser language for dubbed videos","audio.youtube.dub.description":"works even if FreeSaveVideo isn't translated to your language.","audio.tiktok.original":"tiktok","audio.tiktok.original.title":"download original sound","audio.tiktok.original.description":"FreeSaveVideo will download the sound from the video without any changes by the post's author.","metadata.filename":"filename style","metadata.filename.classic":"classic","metadata.filename.basic":"basic","metadata.filename.pretty":"pretty","metadata.filename.nerdy":"nerdy","metadata.filename.description":"filename style will only be used for files tunneled by FreeSaveVideo. some services don't support filename styles other than classic.","metadata.filename.preview.video":"Video Title","metadata.filename.preview.audio":"Audio Title - Audio Author","metadata.file":"file metadata","metadata.disable.title":"disable file metadata","metadata.disable.description":"title, artist, and other info will not be added to the file.","saving.title":"saving method","saving.ask":"ask","saving.download":"download","saving.share":"share","saving.copy":"copy","saving.description":"preferred way of saving the file or link from FreeSaveVideo. if preferred method is unavailable or something goes wrong, FreeSaveVideo will ask you what to do next.","local.saving":"local processing","local.saving.disabled":"disabled","local.saving.preferred":"preferred","local.saving.forced":"forced","local.saving.description":`when enabled, audio and GIF conversions are done in your browser. this allows for faster processing and reduces server load, but may use more battery and system resources.
50
51preferred: use local processing when possible, fallback to server when not supported.
52forced: always use local processing, fail if not supported.`,"local.storage":"browser storage","local.storage.description":"downloads and local processing may temporarily store large media files in your browser. after saving completed results, clear these files to free disk space.","local.storage.loading":"checking locally stored processing files...","local.storage.used":"locally stored processing files: {{ size }} ({{ count }} files)","local.storage.empty":"no local processing files are currently stored in your browser.","local.storage.unavailable":"browser local file storage is not available here.","local.storage.clear":"clear local processing files","local.storage.clearing":"clearing local processing files...","local.storage.cleared":"local processing files have been cleared.","local.storage.confirm":"Clear all local processing files? This removes unfinished downloads and results that have not been saved to your device. Files already saved to your downloads folder are not affected.","local.storage.processing":"finish or cancel active processing tasks before clearing local files.","local.storage.error":"couldn't read or clear local processing files.",accessibility:Jn,"accessibility.transparency.title":"reduce visual transparency","accessibility.transparency.description":"reduces transparency of surfaces and disables blur effects.","accessibility.motion.title":"reduce motion","accessibility.motion.description":"disables animations and transitions whenever possible.",language:Zn,"language.auto.title":"automatic selection","language.auto.description":"FreeSaveVideo will use your browser's default language if translation is available. if not, english will be used instead.","language.preferred.title":"preferred language","language.preferred.description":`this language will be used when automatic selection is disabled. any text that isn't translated will be displayed in english.
53
54we use community-sourced translations for languages other than english, russian, and czech. they may be inaccurate or incomplete.`,"privacy.analytics":"anonymous traffic analytics","privacy.analytics.title":"don't contribute to analytics","privacy.analytics.description":`anonymous traffic analytics are needed to get an approximate number of active FreeSaveVideo users. no identifiable information about you is ever stored. all processed data is anonymized and aggregated.
55
56we use a self-hosted plausible instance that doesn't use cookies and is fully compliant with GDPR, CCPA, and PECR.`,"privacy.analytics.learnmore":"learn more about plausible's dedication to privacy.","privacy.tunnel":"tunneling","privacy.tunnel.title":"always tunnel files","privacy.tunnel.description":"FreeSaveVideo will hide your ip address, browser info, and bypass local network restrictions. when enabled, files will also have readable filenames that otherwise would be gibberish.","advanced.debug":"debug","advanced.debug.title":"enable debug features","advanced.debug.description":"gives you access to a page with various info that can be useful for debugging.","advanced.data":"settings data","processing.override":"default instance override","processing.override.title":"use the instance-provided processing server","processing.override.description":"if web instance provides its own default processing server, you can choose to use it over the main processing server. make sure it's a server by someone you trust.","processing.community":"community instances","processing.enable_custom.title":"use a custom processing server","processing.enable_custom.description":`FreeSaveVideo will use a custom processing server if you choose to. even though FreeSaveVideo has some security measures in place, we are not responsible for any damages done via a community instance, as we have no control over them.
57
58please be mindful of what instances you use and make sure they're hosted by people you trust.`,"processing.custom.placeholder":"custom instance domain"},Nc=Object.freeze(Object.defineProperty({__proto__:null,accessibility:Jn,default:rc,language:Zn,theme:Xn},Symbol.toStringTag,{value:"Module"})),es="index",ts="Whiteboard",os="clipboard",is="discover",as="random video",ns="settings",ss="account",rs="members",ls="updates",ds="donate",cs="about",us="remux",ps="history",hs="FAQ",ms="platform requests",gs="more",bs={media_downloader:"Media Downloader",feedback:"Feedback",file_transfer:"File Transfer",discover_trends:"Discover Trends"},_s="AI video",fs="Highlight Studio",ys="Video Agent",lc={save:es,videorec
58ord:ts,clipboard:os,discover:is,random_video:as,settings:ns,account:ss,member_only:rs,updates:ls,donate:ds,about:cs,remux:us,history:ps,faq:hs,requests:ms,more:gs,feature:bs,ai_video:_s,highlight_studio:fs,video_agent:ys},$c=Object.freeze(Object.defineProperty({__proto__:null,about:cs,account:ss,ai_video:_s,clipboard:os,default:lc,discover:is,donate:ds,faq:hs,feature:bs,highlight_studio:fs,history:ps,member_only:rs,more:gs,random_video:as,remux:us,requests:ms,save:es,settings:ns,updates:ls,video_agent:ys,videorecord:ts},Symbol.toStringTag,{value:"Module"})),vs={title:"Tampermonkey YouTube download tutorial (Bilibili) | Free userscript guide",description:"Step-by-step Tampermonkey userscript workflow to save YouTube videos. Includes my Bilibili tutorial video, setup steps, and safety notes.",keywords:"tampermonkey youtube download, youtube download script, grease monkey, bilibili tutorial, userscript downloader, download youtube video tampermonkey",brand:"FreeSaveVideo"},ws={badge:"Bilibili tutorial",title:"Download YouTube videos with a Tampermonkey userscript",summary:"Follow my Bilibili walkthrough to install Tampermonkey and add a YouTube download script. This remains an optional advanced/backup workflow.",primary_cta:"Try the downloader",secondary_cta:"Watch on Bilibili"},ks={title:"Watch the full Tampermonkey setup",description:"The video shows where to grab the userscript, how to enable it, and how to trigger downloads on a YouTube watch page.",runtime:"Approx. 4 minutes",open:"Open tutorial"},Ss={title:"What you get",points:{reliable:"A fallback when platforms block direct downloads.",safe:"Keep scripts in your own browser; no account needed.",multi:"Works on Chrome, Edge, Firefox and other Chromium-based browsers.",combo:"Pair the script with freesavevideo.online to cover more sites."}},qs={title:"How to use the script",install:{title:"Install Tampermonkey",desc:"Add the Tampermonkey extension from the Chrome Web Store or your browser's add-on store, then pin it for quick access."},script:{title:"Add the YouTube download script",desc:"Open the script link from the Bilibili video description or pinned comment, review the code, and click “Install” in Tampermonkey."},download:{title:"Open a YouTube video and pick a quality",desc:"Refresh the YouTube watch page; the script shows a download button. Choose MP4 quality, then let the script fetch the media."},legal:{title:"Stay compliant",desc:"Download only content you have rights to. Respect YouTube’s Terms of Service and local copyright rules."}},xs={title:"FAQ",items:{quality:{q:"Which qualities does the script support?",a:"Most scripts provide 720p or 1080p. Very high resolutions or age-restricted videos may require DASH merging, which some scripts skip."},broken:{q:"What if the script stops working?",a:"YouTube updates often. Check the Bilibili description for updates, reinstall the latest script, or switch to freesavevideo.online for other platforms."},safe:{q:"Is this safe and legal?",a:"The script runs locally in your browser. Still, only download videos you own or have permission to save, and avoid commercial redistribution."}}},Ts={title:"Need a backup downloader?",subtitle:"Use freesavevideo.online directly for TikTok, Instagram, Facebook, and more. For YouTube, this Tampermonkey flow is optional.",primary:"Go to downloader",secondary:"Rewatch the tutorial"},Cs={page_title:"Tampermonkey YouTube download guide",page_desc:"Two-step setup, three-step download, plus fixes for stalls and save prompts.",hero_badge:"YouTube Download Guide",back_home:"Back to Home",plugin_link:"Get Tampermonkey",bilibili_link:"Watch on Bilibili",video_points:{1:"Script install and buttons for MP4/MP3.",2:"What to do when progress stalls around 2%.",3:"How to allow pop-ups so the save dialog appears."},fallback:{title:"Embed blocked or unstable on mobile",desc:"Open the tutorial in a new tab.",cta:"Watch on Bilibili"},prep:{title:"Core setup (2 steps)",subtitle:"Install the extension, then the script. After that, download buttons appear on YouTube pages.",steps:{1:'Install the extension: search and install "Tampermonkey" from your browser extension store.',2:'Install the script: find the "YouTube tools" script, click "Install this script," and confirm adding it to Tampermonkey.'}}
58,flow:{title:"Download flow",subtitle:"Click the buttons to finish the download.",steps:{1:"Open any YouTube video; new buttons from the script appear under the video.",2:"Click the MP4 button and pick a resolution (e.g., 720p) from the dropdown.",3:"Click download to start. Progress may pause around 2%—wait and it continues.",4:'When finished, if pop-ups are blocked, click "Allow" in the address bar, then choose a save location.'}},notice:{title:"Quick FAQ",items:{1:"A brief stall at ~2% is normal—wait and it resumes.",2:"If no save dialog appears, allow pop-ups and try again."}},faq2:{title:"Troubleshooting",items:{no_buttons:{title:"No download buttons under the YouTube video",steps:{1:"Chrome > Extensions > Manage extensions > find Tampermonkey > Details.",2:"Enable “Allow this site to run scripts” (or user scripts).",3:"Restart the browser and reopen the YouTube page."}},no_save:{title:"No save dialog after download finishes",steps:{1:"When done, the address bar may show “Enable pop-ups on YouTube to automatically download the video.” Click Allow.",2:"If missed, open Site settings > Pop-ups and redirects, and allow youtube.com."}}},screenshot_title:"Chrome pop-up permission",screenshot_note:"In the address bar, allow “Pop-ups and redirects.”",screenshot_alt:"Chrome example enabling pop-ups and redirects for YouTube"}},dc={seo:vs,hero:ws,video:ks,highlights:Ss,steps:qs,faq:xs,cta:Ts,guide:Cs},Yc=Object.freeze(Object.defineProperty({__proto__:null,cta:Ts,default:dc,faq:xs,guide:Cs,hero:ws,highlights:Ss,seo:vs,steps:qs,video:ks},Symbol.toStringTag,{value:"Module"})),cc={"button.next":"go to older changelog ({{ value }})","button.previous":"go to newer changelog ({{ value }})"},zc=Object.freeze(Object.defineProperty({__proto__:null,default:cc},Symbol.toStringTag,{value:"Module"})),Ps="Restore the matching version before editing this run.",Rs="Edit result",Fs="Clip",Ds="Title",Is="Horizontal focus",As="Start cue",Ms="End cue",Vs="Save as new version",Ws="Subtitle text",js="Select a subtitle",Os="Save edits, then start the new plan to render a new run. The old run stays available.",Us="Versions",Ls="Restore selected version",Ns="Plan saved",$s="WORKSPACE PREVIEW",Ys="Describe your goal to download, translate, clip, and subtitle a video.",zs="Projects, sources, and AI planning are available. Video processing is not available yet.",Bs="Open Highlight Studio",Es="Projects",Hs="New video",Qs="Start with a video",Gs="Upload a video, then tell AI what you want to make. Review the plan and follow progress to your results.",Ks="Choose a video",Xs="No video yet?",Js="Next, describe the result you want. Tap an example to get started.",Zs="Upload a video first, or start with a video link.",er="Start with a link",tr="My projects",or="Continue editing or download results from an earlier project.",ir="Continue project",ar="Manage projects",nr="Videos created",sr="Only the clips shown met the length and non-overlap rules. The remaining clips were not created.",rr="Only the videos shown passed verification. The remaining videos were not published.",lr="Adjust request",dr="Play video",cr="Download video",ur="Subtitles and files",pr="No projects yet. Your video projects will appear here.",hr="Membership usage will appear when processing is available.",mr="Conversation",gr="Results",br="What would you like to create?",_r="Describe your video, target language, and the result you want.",fr="Try an example",yr="Download this video, translate it into Spanish, make 3 TikTok clips, and add subtitles.",vr="Translate this video into English and export bilingual subtitles.",wr="Add Spanish dubbing to this short clip.",kr="Video link",Sr="Paste a video link",qr="Upload video",xr="Start task",Tr="AI task execution is not available yet. Your request is a temporary draft.",Cr="Your videos will appear here",Pr="Preview, edit, and download your clips and subtitles here once processing is available.",Rr="Task plan",Fr="The task plan and real progress will appear here when execution is available.",Dr="Project title",Ir="Create project",Ar="Create or select a project",Mr="Delete project and sources",Vr="Load more",Wr="Loading...",jr="Sign in",Or="Import downloaded video",Ur="Open downloader",Lr="Upload progress",Nr="Pause upload",$r="Resume upload",Yr="Download source",zr="Uploading",Br="Waiting for media check",Er="Checking media",Hr="Ready",Qr="Failed",Gr="Expired",Kr="Deleting",Xr="Deleted",Jr="An active AI video membership is required to add sources.",Zr="Select the original file to resume.",el="Source limit reached: 3 videos / 3 GiB.",tl="Each project can contain only one source video.",ol="Upload expired. Upload the file again.",il="Project unavailable or deleted.",al="Request failed. Try again.",nl="Maximum file size: 1 GiB.",sl="Sources: up to 1 GiB / 60 minutes each; retained for 30 days. Upload sessions expire after 6 hours.",rl="Download a video first, then return here to import the authenticated download result.",ll="Shared video quota",dl="Remaining",cl="Reserved",ul="Resets on",pl="Progress unavailable. Reconnecting...",hl="Retry the same request",ml="Review or adju
58st the task plan before starting.",gl="Source video",bl="Target language",_l="Number of clips",fl="Subtitles",yl="Bilingual",vl="Translated",wl="Create plan",kl="Plan saved. Review the settings before starting.",Sl="Full video processing is not available yet. You can save plans and review existing runs.",ql="Quota is rounded up to whole minutes and charged before transcription. Cancellation before charging releases the reservation; committed usage is not refunded.",xl="Run history",Tl="Select run",Cl="Finished steps",Pl="Verified outputs",Rl="Cancel run",Fl="Retry run",Dl="No runs yet.",Il="Queued",Al="Planning",Ml="Waiting for input",Vl="Running",Wl="Running",jl="Cancelling",Ol="Cancelled",Ul="Cancelled",Ll="Completed",Nl="Partially completed",$l="Failed",Yl="Failed",zl="Ready",Bl="Pending",El="Waiting to retry",Hl="Succeeded",Ql="Skipped",Gl="Inspect media",Kl="Split audio",Xl="Transcribe",Jl="Normalize transcript",Zl="Select clips",ed="Translate clips",td="Build subtitles",od="Render video",id="Verify media",ad="Publish results",nd="Send request",sd="Saved",rd="Your request is saved before planning. The task will not start automatically.",ld="Load older messages",dd="Dub selected short clips",cd="Fixed voice",ud="Dubbing replaces the original audio, including background music.",pd="Estimated maximum",hd="characters",md="This plan exceeds the dubbing budget.",gd="Listen to dub",bd="Download dub audio",_d="Audio fit",fd="Download fit report",yd="Prepare speech text",vd="Generate speech",wd="Fit speech timing",kd="Build dub subtitles",uc={edit_restore_first:Ps,edit_result:Rs,edit_clip:Fs,edit_title:Ds,edit_focus:Is,edit_start:As,edit_end:Ms,save_edit:Vs,edit_subtitle:Ws,select_cue:js,edit_version_hint:Os,versions:Us,restore_version:Ls,plan_saved:Ns,preview:$s,description:Ys,preview_note:zs,open_highlight:Bs,projects:Es,new_video:Hs,start_title:Qs,start_intro:Gs,step_choose_video:Ks,no_video_hint:Xs,next_request:Js,source_first_hint:Zs,start_with_link:er,my_projects:tr,my_projects_hint:or,continue_project:ir,project_manage:ar,videos_created:nr,selection_shortfall:sr,partial_results:rr,adjust_request:lr,play_video:dr,download_video:cr,more_files:ur,projects_empty:pr,quota_pending:hr,conversation:mr,results:gr,request_label:br,request_placeholder:_r,examples:fr,clips_example:yr,translation_example:vr,dubbing_example:wr,source_label:kr,source_placeholder:Sr,upload:qr,start:xr,unavailable:Tr,results_empty:Cr,results_hint:Pr,plan:Rr,plan_hint:Fr,project_title:Dr,create_project:Ir,select_project:Ar,delete_project:Mr,load_more:Vr,loading:Wr,sign_in:jr,import_download:Or,open_downloader:Ur,upload_progress:Lr,pause_upload:Nr,resume_upload:$r,download_source:Yr,status_uploading:zr,status_queued_ingest:Br,status_ingesting:Er,status_ready:Hr,status_failed:Qr,status_expired:Gr,status_deleting:Kr,status_deleted:Xr,membership_required:Jr,resume_original:Zr,storage_limit:el,project_source_limit:tl,upload_expired:ol,project_missing:il,request_failed:al,file_too_large:nl,source_retention:sl,import_hint:rl,shared_quota:ll,quota_remaining:dl,quota_reserved:cl,quota_reset:ul,progress_stale:pl,replay_command:hl,plan_controls_hint:ml,plan_source:gl,plan_language:bl,plan_count:_l,plan_subtitles:fl,subtitle_bilingual:yl,subtitle_translated:vl,create_plan:wl,plan_ready:kl,pipeline_pending:Sl,charge_policy:ql,run_history:xl,select_run:Tl,steps_finished:Cl,outputs_verified:Pl,cancel_run:Rl,retry_run:Fl,runs_empty:Dl,run_queued:Il,run_planning:Al,run_awaiting_input:Ml,run_running:Vl,step_running:Wl,run_cancelling:jl,run_cancelled:Ol,step_cancelled:Ul,run_completed:Ll,run_partially_completed:Nl,run_failed:$l,step_failed:Yl,step_ready:zl,step_pending:Bl,step_retry_wait:El,step_succeeded:Hl,step_skipped:Ql,stage_probe:Gl,stage_chunk:Kl,stage_transcribe:Xl,stage_normalize:Jl,stage_select_clips:Zl,stage_translate_selected:ed,stage_build_subtitles:td,stage_render:od,stage_verify:id,stage_publish_results:ad,send_message:nd,message_saved:sd,message_saved_hint:rd,load_older:ld,dubbing_enable:dd,dubbing_voice:cd,dubbing_replaces_audio:ud,dubbing_budget:pd,dubbing_characters:hd,dubbing_over_budget:md,dubbing_preview:gd,dubbing_audio:bd,dubbing_fit:_d,dubbing_download_fit:fd,stage_prepare_dub_text:yd,stage_tts:vd,stage_fit_dub_timeline:wd,stage_build_dub_subtitles:kd},Bc=Object.freeze(Object.defineProperty({__proto__:null,adjust_request:lr,cancel_run:Rl,charge_policy:ql,clips_example:yr,continue_project:ir,conversation:mr,create_plan:wl,create_project:Ir,default:uc,delete_project:Mr,description:Ys,download_source:Yr,download_video:cr,dubbing_audio:bd,dubbing_budget:pd,dubbing_characters:hd,dubbing_download_fit:fd,dubbing_enable:dd,dubbing_example:wr,dubbing_fit:_d,dubbing_over_budget:md,dubbing_preview:gd,dubbing_replaces_audio:ud,dubbing_voice:cd,edit_clip:Fs,edit_end:Ms,edit_focus:Is,edit_restore_first:Ps,edit_result:Rs,edit_start:As,edit_subtitle:Ws,edit_title:Ds,edit_version_hint:Os,examples:fr,file_too_large:nl,import_download:Or,import_hint:rl,load_more:Vr,load_older:ld,loading:Wr,membership_required:Jr,message_saved:sd,message_saved_hint:rd,more_files:ur,my_projects:tr,my_projects_hint:or,new_video:Hs,next_request:Js,no_video_hint:Xs,open_downloader:Ur,open_highlight:Bs,outputs_verified:Pl,partial_results:rr,pause_upload:Nr,pipeline_pending:Sl,plan:Rr,plan_controls_hint:ml,plan_count:_l,plan_hint:Fr,plan_language:bl,plan_ready:kl,plan_saved:Ns,plan_source:gl,plan_subtitles:fl,play_video:dr,preview:$s,preview_note:zs,progress_stale:pl,project_manage:ar,project_missing:il,project_source_limit:tl,project_title:Dr,projects:Es,projects_empty:pr,quota_pending:hr,quota_remaining:dl,quota_reserved:cl,quota_reset:ul,replay_command:hl,request_failed:al,request_label:br,request_placeholder:_r,restore_version:Ls,results:gr,results_empty:Cr,results_hint:Pr,resume_original:Zr,resume_upload:$r,retry_run:Fl,run_awaiting_input:Ml,run_cancelled:Ol,run_cancelling:jl,run_completed:Ll,run_failed:$l,run_history:xl,run_partially_completed:Nl,run_planning:Al,run_queued:Il,run_running:Vl,runs_empty:Dl,save_edit:Vs,select_cue:js,select_project:Ar,select_run:Tl,selection_shortfall:sr,send_message:nd,shared_quota:ll,sign_in:jr,source_first_hint:Zs,source_label:kr,source_placeholder:Sr,source_retention:sl,stage_build_dub_subtitles:kd,stage_build_subtitles:td,stage_chunk:Kl,stage_fit_dub_timeline:wd,stage_normalize:Jl,stage_prepare_dub_text:yd,stage_probe:Gl,stage_publish_results:ad,stage_render:od,stage_select_clips:Zl,stage_transcribe:Xl,stage_translate_selected:ed,stage_tts:vd,stage_verify:id,start:xr,start_intro:Gs,start_title:Qs,start_with_link:er,status_deleted:Xr,status_deleting:Kr,status_expired:Gr,status_failed:Qr,status_ingesting:Er,status_queued_
58ingest:Br,status_ready:Hr,status_uploading:zr,step_cancelled:Ul,step_choose_video:Ks,step_failed:Yl,step_pending:Bl,step_ready:zl,step_retry_wait:El,step_running:Wl,step_skipped:Ql,step_succeeded:Hl,steps_finished:Cl,storage_limit:el,subtitle_bilingual:yl,subtitle_translated:vl,translation_example:vr,unavailable:Tr,upload:qr,upload_expired:ol,upload_progress:Lr,versions:Us,videos_created:nr},Symbol.toStringTag,{value:"Module"})),Sd={title:"Whiteboard Video Recorder - Record Slide Tutorials Online | FreeSaveVideo",description:"Create, move, and resize slides, then record whiteboard tutorials with camera overlay in your browser. No install required.",keywords:"whiteboard recorder,slide recorder,online video recorder,excalidraw recorder,tutorial recording",app_name:"Whiteboard Video Recorder"},qd={drag_controls:"Drag controls",open_settings:"Open settings",toggle_teleprompter:"Toggle teleprompter",starting:"Starting...",countdown:"Countdown {{value}}",record:"Record",resume:"Resume",pause:"Pause",stopping:"Stopping...",stop_with_duration:"Stop {{value}}"},xd={title:"Slides",move_up:"Move up",move_down:"Move down",duplicate:"Duplicate",delete:"Delete",add:"Add slide"},Td={placeholder:`Paste your script here...
59Only you can see it; it will not appear in the recording.`,title:"Teleprompter",drag_title:"Drag teleprompter",drag:"Drag",play:"Play",pause:"Pause",reset:"Reset",speed:"Speed",opacity:"Opacity",font_size:"Font size"},Cd={drag_overlay:"Drag camera overlay"},Pd={whiteboard_title:"Whiteboard",whiteboard_body:"Use Excalidraw top toolbar for select/draw/text/zoom/pan.",recording_title:"Recording",recording_body:"P to start/stop, K to pause/resume."},Rd={title:"Recording settings",dialog:"Recording settings",close:"Close recording settings",aspect:{title:"Aspect ratio",youtube:"YouTube",classic:"Classic",portrait:"Portrait",short_video:"Short Video",square:"Square"},background:{title:"Background",random:"Random background",light_preset:"White background + dark text",swatch:"Backgroun
59d {{value}}"},canvas:{title:"Canvas style",corner_radius:"Corner radius",inner_padding:"Canvas padding"},preview:{title:"Preview"},teleprompter_opacity:{title:"Teleprompter opacity"},export:{title:"Export format",webm:"WebM (better compatibility)",mp4:"MP4 (default)",note:"Default export is MP4. If MP4 recording is unsupported by the browser, it will automatically fall back to WebM."},countdown:{title:"Countdown before recording",enable:"Enable countdown",seconds:"Seconds"},camera:{title:"Camera (picture-in-picture)",show:"Show camera while recording",fill_frame:"Fill the whole recording frame with camera",size:"Size",radius:"Corner radius",margin:"Margin",mirror:"Mirror camera",corner_tl:"Top left",corner_tr:"Top right",corner_bl:"Bottom left",corner_br:"Bottom right",offset_x:"X offset",offset_y:"Y offset",reset_offset:"Reset camera offset"},preflight:{title:"Recording preflight",run:"Run preflight",last_run:"Last run",never:"Not run yet"},mic:{title:"Microphone",include_audio:"Include microphone audio in recording",device_none:"No microphone detected",device_fallback:"Mic {{value}}",refresh:"Refresh devices",test:"Test mic",testing:"Testing...",hum_reduction:"Reduce mains hum (notch filter)",mains_frequency:"Mains frequency",hum_hint:"Applies high-pass + 50/60Hz harmonic notch before recording."},cursor:{title:"Cursor highlight",enable:"Show cursor highlight while recording"}},Fd={before_unload:"Recording is in progress. Leaving this page may interrupt recording and lose export data.",pagehide_autostop:"Page moved to background. Recording has been auto-stopped to protect file integrity.",whiteboard_temporarily_unavailable:"Whiteboard frame is temporarily unavailable. Waiting for recovery...",whiteboard_load_failed:"Whiteboard failed to load. Please refresh and try again.",mic_test_unsupported:"Current browser does not support microphone level test.",mic_test_low_input:"Microphone input is too low. Please check input device or permission.",mic_test_passed:"Microphone test passed.",mic_test_failed:"Microphone test failed. Please allow microphone permission in browser.",preflight_canvas_not_ready:"Preflight failed: canvas is not ready.",preflight_mediarecorder_unsupported:"Preflight failed: current browser does not support MediaRecorder.",preflight_capturestream_unsupported:"Preflight failed: current browser does not support canvas.captureStream.",preflight_no_mic_device:"Preflight failed: no microphone device detected.",preflight_passed:"Preflight passed: {{mime}}{{camera}}{{mic}}",media:{camera:"Camera",mic:"Microphone"},mp4_fallback_webm:"Current browser does not support MP4 recording. Fell back to WebM.",webm_fallback_mp4:"Current browser does not support WebM recording. Fell back to MP4.",no_supported_mime:"Current browser does not support any usable recording codec. Recording may fail to start.",record_will_include_mic:"Recording will include microphone audio. Please confirm microphone permission is granted.",record_start_canvas_unavailable:"Failed to start recording: canvas stream is unavailable.",record_crop_fallback:"Recording crop failed. Falling back to full canvas capture.",video_track_ended:"Video track ended unexpectedly. Auto-stopping recording.",mic_track_ended:"Microphone track ended. Subsequent recording will have no audio.",mic_unavailable_video_only:"Microphone unavailable. Recording video only.",recorder_init_failed:"Recorder initialization failed. Try changing export format or browser.",recorder_error_stopping:"Recorder error occurred. Attempting safe stop and export.",no_output_chunks:"No exp
59ortable chunks generated. Please try recording again.",output_too_small:"Output file is too small. Recording may have been too short or interrupted.",stop_cause:{user:"manual stop",pagehide:"page backgrounded",video_ended:"video track ended",recorder_error:"recorder error",timeout:"stop timeout",unknown:"unknown"},export_complete:"Export complete: {{ext}} ({{size_kb}} KB) è·¯ Stop reason: {{cause}}{{tail}}",export_tail:", last segment may be incomplete ({{seconds}}s without new chunks)",record_started_with_audio:"Recording started (with microphone).",record_started_without_audio:"Recording started (no audio track).",record_start_failed:"Failed to start recording. Please check browser permission and codec support.",stop_failed:"Failed to stop recording. Please retry.",stop_timeout_forced:"Stopping recording timed out. Forced finalize applied.",pause_unsupported:"Current browser does not support pause recording.",resume_unsupported:"Current browser does not support resume recording."},Dd={create_prompt:"Enter a website URL to embed (https://...)",edit_prompt:"Edit embedded URL",invalid_url_alert:"Please enter a link that starts with http(s)"},Id={checking_label:"Compatibility check",checking_title:"Checking your browser",checking_body:"Preparing the recorder...",blocked_label:"Device not supported",mobile_title:"Use this recorder on a computer",mobile_body:"This recording page is performance-heavy on phones. Please open it on a desktop or laptop for a smoother experience.",wechat_title:"Open this page in Chrome or Edge",wechat_body:"The WeChat in-app browser does not support this recorder reliably. Please copy the link and open it in Chrome or Microsoft Edge."},pc={seo:Sd,controls:qd,slides:xd,teleprompter:Td,camera:Cd,shortcuts:Pd,settings:Rd,notice:Fd,embed:Dd,environment:Id},Ec=Object.freeze(Object.defineProperty({__proto__:null,camera:Cd,controls:qd,default:pc,embed:Dd,environment:Id,notice:Fd,seo:Sd,settings:Rd,shortcuts:Pd,slides:xd,teleprompter:Td},Symbol.toStringTag,{value:"Module"}));export{Oc as A,Uc as B,Lc as C,Nc as D,$c as E,Yc as F,zc as G,Bc as H,Ec as I,gc as a,fc as b,vc as c,mc as d,Ad as e,wc as f,bc as g,kc as h,Sc as i,qc as j,xc as k,Tc as l,Cc as m,Pc as n,Rc as o,Fc as p,_c as q,Dc as r,hc as s,yc as t,Ic as u,Ac as v,Mc as w,Vc as x,Wc as y,jc as z};

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.