#tutorial arch
Explore tagged Tumblr posts
wetpigmentonpaper · 8 months ago
Text
Painting Pearl Process - Part One!!
Step 1: Deciding the reference photo does, actually, have merit
When I asked my friends for their favorite picture of their pup Pearl, I wasn't expecting this vaseline-filter, monochrome answer. I wasn't in love with it, so I put it away for a couple months. This weekend, the dramatic lighting finally sparked my inspiration: I can try really stretching what I can accomplish with light and shadow!
Tumblr media
Step 2: Create a shadow map
This is a new technique to me, from Lynn Ferris's demo at SWS's October meeting. She placed trace paper over her reference photo and blocked in everything that was shadow. No nuance to it - just yes/no is it in shadow. Once done, she recommended flipping the shadow map upside down and looking at it in a mirror to double-check that the composition is balanced.
I have here an 8.5" x 11" color copy of my reference photo with plain old trace paper on top. I was so happy with the result that I decided not to create a value study for this one. I plan to reference this shadow map heavily as I paint to help simplify the shapes.
Tumblr media
Step 3: Tracing
Yep, I trace all my paintings. What can I say - I'm learning to paint, and I just feel a little bit more confident going in if I know the base drawing isn't wonky. I try to sketch on the side, though, so maybe one day I'll feel confident enough in my skills to draw right on the paper!
Shoutout to my partner for enbiggening the photo for me lol. This painting will be 9.5" x 13", perfect for a quarter sheet of Arches Cold Press 140#.
Here, I simply lined up my print-out on the light table and layered my paper on top. When tracing, there are a couple things I do intentionally:
Draw the border of the image (easy to forget, and will help with matting eventually)
Use a hard pencil (used 6H here) so the lines are light
Tumblr media Tumblr media Tumblr media
Step 4: Paint????
Now that I've prepared my paper, there's nothing stopping me from painting this puppy dog. I haven't decided yet if I want to do an underpainting or keep those lights pure paper-white....tbd!! I'll try to take pictures as I paint so I can post a part two.
Wish me luck :)
3 notes · View notes
kirbyfigure · 2 years ago
Note
hi!! can you make some virus/computer related usernames? or anything connected to software programs, coding programs etc!! i would enjoy if they were a play on words but they dont have to be!
/nf
I love this ask Ty
@codequre
@putergirl
@linuxluv
@downloed
@softwearz
@creatorcoml
@htmlfreaked
@vairusgirl
@vairusboy
@vaivirus
@illestvirus
@infectedvir
29 notes · View notes
linuxtuts4115tutoriales · 7 days ago
Text
Las 5 mejores distribuciones de Linux
youtube
0 notes
darcksama · 26 days ago
Text
youtube
Conheça todos os segredos do biglinux e ferramentas ocultas do sistema que pode te ajudar ainda mais na sua produtividade.
0 notes
williamapires · 1 year ago
Text
Esse foi o ano definitivo do linux pra mim, e me estabeleci no Arch, é onde eu mais me adaptei no mundo linux.
Como sempre, erros podem acontecer e pensando nisso, criei uma conta no github para postar pequenos tutoriais para me ajudar, e consequentemente, ajudar a outros usuários que possam estar com os mesmos problemas.
Se você é usuário iniciante de Arch, talvez você possa achar a solução para algum problema aqui, caso não tenha o problema específico, eu posso tentar ajudar, é só mandar uma mensagem e te ajudo a ir atrás.
0 notes
nikkilbook · 1 year ago
Text
Tumblr media
My scrungly boy!
Tumblr media Tumblr media Tumblr media
I see you are a bird of fine taste!
Tumblr media
made david a kin onion 👁️
101 notes · View notes
scrollgirl1 · 1 year ago
Text
Endings and Beginnings
"Trust that an ending is followed by a beginning." - Naveera Salam
“Trust that an ending is followed by a beginning.” – Naveera Salam It is momentarily hard to believe that we are already turning another page on the calendar and getting ready to begin a new year. I say, “momentarily” because when I really take a few moments to think of the past twelve months, I realize that much has happened. Many changes have occurred in my life this past year. Friends and…
Tumblr media
View On WordPress
1 note · View note
sillyasl · 2 years ago
Text
Tumblr media
This was fucking moments before I found out that I cannot access the internet so I couldn't install anything and I a wave of disappointment flooded over me. Does anybody know how to make this work?? (I used archinstall, and I'm doing a live usb)
0 notes
uppersidedreaminnn · 2 months ago
Text
𓂃 ‎ ‎ ‎ DANCE MACHINE‎ ‎ ‎★‎ ‎ ‎ ‎N.RK
Tumblr media Tumblr media Tumblr media
synopsis: in which you want to learn how to dance; lucky for you, you have a dance prodigy as your boyfriend.  word count: 1.6k genre: fluff, soft hours, established relationship.
reblogs ִֶָ 𓂃⊹ ִֶָ feedback >ᴗ<
Tumblr media
you weren’t sure what exactly sparked your sudden desire to learn how to dance. maybe it was the numerous trending challenges that filled your tiktok for you page, or the way your friends were constantly filming and joining in. then again, maybe it was because your boyfriend, of all people, happened to be a walking dance prodigy—and watching him move so fluidly, so effortlessly, always left you entranced. 
whatever the reason, you made a silent promise to yourself one night: you were going to hop on the bandwagon and give it a shot. 
the following morning, you go through your usual routine, except with one new addition. standing awkwardly in front of your bedroom mirror, you hesitate. you’d spent the night before figuring out how to even begin this new endeavor. of course, you could have just asked riki for help—he’d probably jump at the chance to teach you—but after thinking it through, you decided to try learning on your own first. maybe it’d be more rewarding that way. and maybe, just maybe, you didn’t want to embarrass yourself in front of someone who danced like it was second nature.
so you start small— with the basic body movements, slow waves, beginner footwork, all inspired by a random youtube tutorial you found. you instantly feel like a kid learning to ride a bike all over again, clumsy and off-balance. in just a few minutes, you’re already sweating, your muscles sore and unfamiliar with the new way you’re forcing them to move.
you exhale deeply, watching your reflection as you repeat a sequence again.
damn, you think, people really make this look way easier than it is.
days pass. you go to class, hang out with friends, spend time with riki—your life carries on as usual. except now, your mornings start differently. you've been consistent, determined to better your skills. every day, you rehearse movements, watch “how to dance for beginners” videos, and scroll through advice from dancers online. sometimes you feel good. other times, you feel painfully awkward, like your limbs are working against you. but regardless—you keep going. hoping, eventually, your movements will start to feel natural.
lately, though, you’re starting to second-guess that sentiment.
you dance in the mornings, sometimes even at night if you’re free, trying to lock down a “beginner-friendly choreography” you thought would be easy. spoiler alert: it’s not. no matter how many times you run through the steps, your body refuses to cooperate. you’re rigid. stiff. your body failing to replicate the movements you see on-screen. after another futile attempt, you throw yourself onto your bed with a dramatic sigh, limbs sprawled and tired.
you’d picked a simple dance today, hoping for some kind of breakthrough. but now, lying there and feeling defeated, you can’t help but wonder if all your hard work has been for nothing. maybe you’re just not cut out for dancing after all.
your phone pings, snapping you out of your spiral. you wince as you reach for it, your sore muscles protesting. it’s from riki.
he’s spammed you with messages.
“baby??” “y/n, check your phone.” “did you seriously forget we have a date today?”
your heart sinks. crap, it slipped your mind.
you sit up straight, reading the last message:
“i’m coming over to pick you up. just get ready.”
but before you can even get up, the doorbell rings. startled, you scramble out of bed, hair a mess, shirt damp with sweat, rushing to open the door.
“hi,” you breathe, greeted by the familiar sight of your boyfriend—varsity jacket hanging off his frame, paired with his signature baggy jeans. instinctively, you run a hand through your hair, trying to fix yourself up a little.
riki arches a brow the second he sees you. you're disheveled. not quite the look for a date. his eyes flick up and down, trying to guess what on earth you were doing to end up looking like that. you don’t catch the bemused expression on his face as you dart into your room, grabbing a clean shirt and trying to tame your hair.
he crosses his arms, amusement dancing in his eyes. now that he thinks about it—you have been acting strange. you’ve been declining his morning hangouts lately, always saying you’re busy. and that’s unusual. mornings are your favorite time to relax, he knows your habits like the back of his hand. so either something’s changed... or you’re hiding something.
and riki doesn’t like being left in the dark. especially when it came to you, his girlfriend.
he watches you closely as you quickly change and rush through your makeup routine, forgetting to even apologize for spacing on your date, he leans against the counter, eyes narrowed.
“you forgot our date,” he says bluntly, prompting for an explanation.
you sigh upon hearing his words, glancing at him through the mirror. there’s no use denying it.
“yeah,” you mumble lowly, snapping your lip gloss shut, “i got caught up with something.”
“with what?” 
you pause.
after a moment, you give in with a quiet huff. you know you promised yourself to keep your pursuits a secret, but riki’s got you cornered and honestly, you’re too tired from all the practice to care anymore.
“remember what giselle said when we started dating?” you ask, voice slow. when he doesn’t respond, you go on, “about how we’d be unstoppable if i learned to dance… and we could dance together?”
riki nods slowly, “kinda,” vaguely remembering the comment your friend had made when he first met them. he hadn’t thought much of it at the time, assuming you didn’t really care about dancing and that it was only his forte.
“well…” you trail off, sheepish. “i started learning recently.”
he blinks, eyebrows rising in surprise. you feel shy under the weight of his reaction, the shock clear on his face.
��you’ve been learning to dance?” he asks, incredulous. “i thought you hated any physical activity,” he adds, his tone genuinely curious.
you sigh dramatically. “i do. but i’ve been... determined.” 
before he can say more, you cut in, “it’s just—i don’t think i’m getting anywhere.” your voice wavers with frustration. “i’ve been practicing every day, even late at night sometimes, and i still move like a robot.” the words spill out as you finally let your boyfriend in on how you’ve been feeling.
riki steps closer now, studying your face.
“why didn’t you just ask me for help?” he says, sounding half-offended that it hadn’t been your first instinct. dancing was something he took pride in—and he knew he could’ve taught you what he knows, if only you had asked.
you avoid his eyes. “i don’t know... i wanted to do it on my own first. and i didn’t want to look stupid in front of you.”
he frowns at that, gently tilting your chin so you're forced to meet his gaze. “you could never look stupid to me.”
you smile, touched—but embarrassment still lingers in you. “you haven’t even seen my movements yet.” you breathe.
riki nods, understanding how you feel—he knows learning something entirely new for the first time isn’t easy in the slightest. he pauses, thinking of a way to help, then his face lights up as an idea comes to him. “i have an idea.”
before you can respond, he grabs your hand swiftly, intertwining your fingers and tugging you towards the door.
“where are we going?” you ask, confused as you trail behind him.
riki just flashes you a grin, keeping you in suspense. “you’ll see,” he says lowly.
you two soon arrive at a familiar building, riki’s family dance studio. the arcade date you had planned quietly fading, replaced by what seems to be a dance date with riki teaching you.
you hadn’t been in the building for a while and apparently, neither has he. riki greets the staff with ease, exchanging a few light words before guiding you down the familiar halls. he leads you into an empty practice room, its mirrored walls stretching across one side, reflecting the quiet space back at you. the atmosphere feels different now, open, expectant, almost sacred. you’ve never stood in one of these rooms as someone who would dance before, only ever watching from the sidelines when you tagged along to riki’s practices. now, standing in the center of it, you feel a quiet nervousness mixed with awe.
“this was my go-to spot when i was a kid,” riki says, his voice clear in the quiet room, eyes soft by nostalgia.
he plays music from the speakers and swiftly begins moving through a simple choreography. you watch, captivated, as always. he dances like water—fluid, controlled and sharp. when he notices you staring, he grins and gestures for you to join him.
sensing your hesitation, he reassures you. “don’t worry, we’ll go slow. i’ll break it down for you, okay?”
you take a deep breath and nod, stepping beside him.
and true to his word, he takes it slow, demonstrating each movement in detail, patiently guiding you when you mess up,  and gently correcting your mistakes. even when your frustration peaks—discouraged by certain moves—he stays patient, gently reminding you that you'll dance better with a clear, confident mind.
eventually, after a few run-throughs, you both laugh exhilarated in triumph. he plays the song again from the top, this time letting you take the lead. you hesitantly move to the center of the room, your expression focused.
he watches from the side, arms crossed, a soft smile tugging at his lips.
when the song ends, you exhale.
“i definitely still need more practice,” you conclude, biting your lip as you look up at him.
“you did amazing, baby,” he says, voice low and sincere.
you roll your eyes, poking his side. “you’re biased, riki.”
“and proud of it,” he moves away, dodging your advances.
you laugh, then redo the footwork you still struggle with. “can we go over this part again?”
“of course,” he says, stepping in front of you, mumbling the countings, demonstrating the steps again.
in that moment, you realize—learning to dance might not be so hard after all.
not when you’ve got a boyfriend as patient as riki right beside you.
Tumblr media
644 notes · View notes
castielscaplan · 2 months ago
Text
Heartbeat
Tumblr media
Summary: dean's in love with your belly.
Warnings: Fluff, Hurt/Comfort, Protective!Dean, Established Relationship, pregnant reader, Mild language, pregnancy themes, soft!Dean
WC: 627
Read on ao3!
A/N: idea came from a prompt from this list!
-
Your feet hurt.
That was the first thing Dean noticed when you walked through the bunker’s door—shoes in hand, a scowl between your brows, and your other hand bracing the small of your back. The pregnancy was nearing its final stretch, and your body had made its rebellion known in every possible way.
Dean was across the war room in two strides. “Hey, hey, come here.” He swept the shoes from your grip and helped you ease into a chair like you were made of porcelain. “You’re supposed to be taking it easy.”
“I went to the store, not war,” you huffed. “I’m pregnant, not made of glass.”
Dean crouched beside you, hands already on your calves, fingers moving to rub the arches of your aching feet like it was second nature. He was obsessed with touching you lately—not in a weird way but more like he couldn’t believe you were real. Couldn’t believe this was real.
“I just don’t like you carrying anything heavier than a craving,” he muttered, pressing a kiss to your knee before looking up at you with those damn forest-green eyes. “You okay?”
You softened. Always did with him. “Yeah. Just tired.”
He nodded, reaching up to cradle your belly with both hands. Your shirt was stretched tight over it now—his shirt, really, soft cotton with an old Zepp logo, permanently claimed by you months ago. His thumbs traced light circles on either side of the bump, reverent.
“You know,” he said quietly, “I can feel her kick now. Stronger than yesterday.”
You smiled. “She’s definitely your kid. Already throwing punches.”
His jaw ticked slightly, and there was that look again—the one you were starting to recognize. It wasn’t just awe. It was something deeper. He looked at you like he was scared the world would take you from him. Like he was scared of being happy.
“I keep thinking I’m gonna wake up,” he confessed, voice low. “Like this is all some dream I’m not allowed to have. You. Her. A home.”
You reached down, fingers sliding into his hair. “It’s not a dream, Dean. You built this.”
He leaned into your hand. “No. You built this. I just… I’m the guy who got lucky.”
You both were quiet for a moment. Then his hand shifted again, thumb brushing just under the curve of your bump.
“I’ve got this list,” he said suddenly, eyes still fixed on your stomach.
You blinked. “List?”
“Of things I wanna do before she’s born. Stuff I wanna be ready for. I, uh…” He looked a little sheepish. “I read all the books. Sam caught me watching a diaper tutorial on YouTube the other night. Thought I was watching porn or something.”
You laughed, heart swelling.
Dean grinned, rubbing the back of his neck. “I just wanna be good at this. Better than I ever had. You know?”
You cupped his cheek. “You already are. She’s lucky, Dean. We both are.”
His eyes shimmered just a bit. He didn’t cry—Dean Winchester didn’t cry, at least not where you could see it—but you felt it in the way he kissed your palm, slow and grateful.
He stood and pulled you into his arms, careful but close. “Swear to God, Y/N, I’ve faced monsters, angels, Lucifer himself—but nothing terrifies me more than the idea of not doing right by you and her.”
You leaned your head against his chest, hearing the steady thump of his heart.
“Then stop worrying,” you said softly. “You’re already doing everything right.”
His arms tightened just a little.
And when the baby kicked again, right against his ribs, you felt him smile against your hair like it was the best moment of his entire life.
711 notes · View notes
aelxnox · 1 month ago
Note
Rope bunny reader x Sevika with overstimulation and whining? 🫣 if you feel up for aftercare I’ll love you forever 💗💗
ROPE BUNNY
Tumblr media Tumblr media Tumblr media
warning: rope bondage, dacryphilia, slight pussy slap, overstimulation, whining, not proofread, sev has both her arms here, slight cnc
You sat on your knees on top of your bed, your laptop sitting infront of you whilst a video tutorial is playing. Your brows were furrowed, hands clutching the rope tightly as you finished tying it around your body.
"Finally." you sighed. You quickly paused the video and scrambled off the bed to check out yourself infront of the full-body mirror.
You bit your lip as you felt the spikes of the rope tickle your skin, sending a surge of pleasure course through your body.
"She's gonna love this." you chuckled to yourself and sat infront of the mirror to admire how the ropes hugged your body, your hands caressing your skin softly.
You heard the front door open, your eyes widening when Sevika's voice followed. "Honey? I'm home!" she called out.
You got up and sat on the bed with your legs spread wide and back resting on the headboard, your face contorting when the rope pinched your skin.
Sevika's brows furrowed when she was welcomed with silence. Her heart starting to beat fast at the thought of something bad happening to you.
She dropped the bags on the counter and took long strides towards the bedroom, her hand slightly trembling when she held on the doorknob.
"Baby? Why did-" she gasped, her mouth hanging open when she saw you sat on the bed with your reddening skin from the tightness of the rope.
Her eyes drifted over to your breasts, to your stomach, and down to your glistening folds. Her mouth watering at the wetness coating your pussy and the inside of your thighs.
"Baby.. what?" Sevika chuckled, her hand covering her mouth as her eyes continued to watch you hungrily.
You bit your lip and looked at her through your lashes, your back arching off the bed to show off your perked nipples. "You like it?"
She shook her head and slowly walked towards you on the bed. "I don't like it.." she trailed off, her hand brushing against your nipples.
Sevika leaned in closer, her hot breath blowing against your ear as she spoke. "I love it." she growled and punctuated her words by landing a harsh slap on your pussy, making you gasp and squeeze your thighs against each other.
"Ah!" you whimpered, Sevika's fingers rubbing your clit to soothe the sting from the slap.
You tilted your head and cupped Sevika's hands to pull her in for a kiss, her mouth latching onto yours and tongue delving into your mouth.
Sevika pinched your nipples whilst she sucked on your tongue, your mouths creating lewd noises that made both of you and Sevika's head spin in ecstasy.
"You naughty, naughty bunny." she rasped between the kiss and slowly pulled away, her eyes immediately landing on your swollen and wet lips before moving up to your eyes.
You watched as she moved from the bed to take off her shirt, your jaw dropping when her sweat-coated abs came into view.
Sevika watched your reaction to her revealing more of her skin, a smug grin forming on her face when your hole started to clench.
"You getting excited, baby?" she asked and reached out her hand to tilt your chin up. She wiped the drool that dripped out of your mouth with her thumb and brought it up to her lips to suck on it.
"Hmm.. so good." she moaned. "Please.." you whined and pulled her in to try to chase her mouth. Sevika only pulled away and pushed you down on the bed, tears forming in your eyes at her teasing.
"Patience, doll. You need to be patient." she muttered and hovered over your trembling body. She cupped your mound, her eyes closing at the feeling of your slick coating her palm. "Such a soaked fucking pussy."
Your back arched off the bed, Sevika's fingers dipping inside of your hole that made you quiver. "Hngh! P-please, Sev.. please, f-fuck me.." you whimpered.
And it didn't help that the rope was tickling and scratching your skin. Your face contorted as you adjusted your position on the bed whilst also trying to get Sevika to push her fingers deep inside your soaked cunt.
She watched you slowly become even more desperate for her, her smirk growing when she saw how pained and aroused you looked.
"Poor you.." she chuckled and spread your legs with her hands before slamming two of her fingers inside you.
"Ah! Y-yes, fuck! Hmm.." you exclaimed, a big grin plastered on your face when you finally felt her thick fingers fill your hole. You spread your legs wider, Sevika adding a third finger into your pussy to stretch you out.
She cupped your breast, her large hand squeezing the flesh tightly that made the rope tighten even more. "Look at you, so desperate to get fucked. You're a slut, huh?"
You nodded at her words, your excitement only growing at her words. "Y-yes! I'm your slut, f-fuck.. I'm a fucking slut." you whimpered, your hands clutching the bedsheets tightly as a familiar knot formed in your stomach.
Sevika's brow arched when your walls choked her fingers, her teeth biting down on her bottom lip when your eyes rolled back. "You cumming, baby? You gonna cum like the fucking slut you are?" she husked and wrapped her other hand around your face tightly, squeezing your cheeks.
"Uh-huh, y-yes. I'm gonna cum! Hnnghh, fuck. More, m-more, please!" you pleaded and wrapped your thighs around Sevika, your nails scratching her back.
Sevika leaned down and wrapped her mouth around your nipple, her sharp teeth biting your nipple and pulling them back that made you cum around her fingers.
"Ah! H-hnghh.." your body spasmed, Sevika's fingers still not stopping their assault on your spent cunt.
She looked up at you and continued to abuse your breasts, bruising teeth marks forming on your skin from how hard she was biting.
Tears started to spill from your eyes, your trembling hands trying push Sevika's away when you felt your head start to get light.
"S-stop.. ahh, 's too m-much. Sev, please.." you whined, sobs escaping your mouth as you pleaded for her to stop.
Sevika only smiled and watched your cunt continue to leak out that white liquid and form a ring around her fingers.
"It's too much? That's too bad." she cooed, her brows furrowed. She leaned down and stuck out her tongue to lick the tears that spilt from your eyes.
"Stop, p-please.. I c-can't." you sobbed and looked up at her pleadingly. "No more.. hnghh, ah please."
"Okay, okay. That's enough." she chuckled and leaned down to place a kiss on your lips before pulling away to watch her fingers slowly slip out of your cunt.
You let out a shuddering sigh, your body still twitching from the aftershocks. Sevika studied you for a moment, guilt starting to gnaw at her.
"You okay?" she whispered, your head tilting to face her. "Yeah." you smiled.
Sevika let out a relieved sigh and lay beside you before wrapping her arm around to waist. "I'm sorry. Did I push you too hard?"
You chuckled, your chest rumbling at the sound. "Silly. We've done this a couple of times, haven't we? And I promise that if you somehow manage to push me too far, i'll let you know."
She nodded, the weight on her chest finally going away at your reassuring words. "Yeah. You'll let me know."
590 notes · View notes
nhmkhnh · 14 days ago
Text
Tumblr media Tumblr media Tumblr media Tumblr media
LIKE A CHAMP
CHARACTERS: VI ;; ELLIE WILLIAMS ;; ABBY ANDERSON ;; CHLOE PRICE
PAIRINGS: ALL X SUB!FEM!READER (one for each scenario) 
WARNING(S): lowercase, explicit content (minors & men dni) 
TAGS: nerd!char ;; dom!char ;; oral (r. receiving) ;; they eat like possessed ;; messy ;; freaky oral skill for the first time ♡
navigation. 
Tumblr media
vi
she’d read so much about it. studied diagrams. highlighted sections. memorized articles. freaking annotated the “female pleasure handbook” like it was a holy text.
but none of it—none of it—could’ve prepared vi for the reality of having you spread out on her dorm bed, legs trembling, slick glistening in the glow of her laptop’s screen saver as you whimpered her name.
"jesus fuck—" she mumbled, almost to herself, as she settled between your thighs, eyes wide like a virgin in a hentai (which, okay, maybe she was, technically). her glasses fogged immediately. she didn’t care. just wiped them on her hoodie sleeve like she was prepping for a boss battle.
"tell me if i’m—fuck, okay—tell me if it feels good," she whispered, breath hot on your inner thigh. but before you could even answer, she dove.
tongue flat and trembling at first, nervous licks like she was still trying to map the shape of you—but vi was a nerd with a damn photographic memory, and the second she found your clit, it was over. she latched on like she was starved for it, making these greedy, wet noises that had your thighs clamping around her head within seconds.
she moaned—moaned—like she loved the way you shook. licked harder.
sucked like a champ.
and it wasn’t just her mouth. her big hands (the ones you’d ogled in class for months) held your hips down with this shaky but determined grip, pinky rings digging into your skin while her tongue circled, dragged, flicked—
"vi—vi—" your back arched. she whimpered into you.
you came. sudden. loud. a mess.
and vi? nearly fucking cried.
because you were still twitching, and she was still going, nose buried, hands tightening like she couldn’t stand to be away from the taste of you.
"fuck, oh my god," she panted against your cunt, voice ragged, flushed pink from nose to chest. "you taste so good. holy shit. did i do that? i did that, right? fuck—"
you tugged at her hoodie, dazed. "vi—baby, i came. you can stop—"
she looked up, glassy-eyed, lips shiny, pupils blown. "no. i-i wanna see if you can do it again."
then went back down like a goddamn legend.
and that night? vi learned two things:
1. she loves eating pussy.
2. she’s fucking terrifyingly good at it.
Tumblr media
ellie williams
she’s sweating. hard. not from nerves—well, yes, nerves too—but mostly from being face-first in the wettest, prettiest pussy she’s ever seen in her entire goddamn life.
"okay," ellie mutters to herself, licking her lips as she stares, eyes dark and frantic. "okay. you studied for this. you trained for this. you watched the tutorials with the notebook and the captions on. you're built for this."
“ellie.” your voice trembles. “you okay down there?”
“y-yeah.” she adjusts her backwards cap with one hand like she’s entering the finals of the oral olympics. “just—gimme a sec.”
then she leans in.
her tongue starts off shaky—too high, too low, licking around like she’s still figuring out where to go. but then you gasp. her lashes flutter. she licks that exact same spot again.
and again.
“oh my fucking god,” she says under her breath, then locks in.
mouth sealed, tongue moving in tight, desperate little motions. sloppy. eager. like she’s been dreaming of this moment since junior year bio when you wore that short plaid skirt.
her hands grip your thighs hard enough to bruise. you can feel how tense she is—shoulders flexing under her hoodie, hips rocking against the mattress from how riled up she is. she's moaning into you like she’s the one getting eaten out.
every time you whimper, she gets wilder.
when you arch your back, she pulls you deeper onto her face. when your thighs start shaking, she lets out this choked, needy groan and circles her tongue faster, hungrier, like she wants to break the damn sound barrier with how fast she’s going.
"fuck," you cry. "ellie—ellie, i’m gonna—"
she growls into your pussy. you cum so hard you nearly blackout.
and ellie? she’s fucking soaked. jeans wet, cheeks flushed, mouth still moving like she hasn’t noticed you finished.
you tug her up, breathless, heart slamming in your chest.
her face is drenched. chin wet, nose red, eyes wide and frantic like a deer in headlights.
"did—did i do it right?" she pants. “wait. was that too much? do i—can i do it again?”
you don’t answer. you just stare.
because holy shit.
ellie williams is a virgin. a nerd. a dork who plays guitar and stammers during group presentations.
and apparently?
a pussy devouring prodigy.
Tumblr media
abby anderson
you knew abby was strong.
knew it when she carried your entire moving box haul up three flights of dorm stairs like it weighed nothing. knew it when her hoodie sleeves tugged tight around those god-tier biceps every time she flexed without realizing it.
what you didn’t know?
is that the same abby—nerdy, blushing, biochem honor student abby—would be so freakishly good with her mouth on your pussy. on her first try.
"is this okay?" she asks, kneeling on the floor while you’re sprawled across her bed, sweat-slick and ruined. her hands are on your thighs, holding you open with ridiculous gentleness for someone with arms like a demigod. her voice is breathy. hesitant.
you nod. more like whimper.
and abby—abby leans in with this reverent look, like she’s about to kiss something holy.
the first lick is soft. careful. a warm drag of her tongue that has her exhaling hard through her nose, eyes fluttering shut like she’s finally found a missing piece of herself between your thighs.
"jesus christ," she breathes. "you’re… you’re really sweet, huh?"
then she moans. loud. feral. like her brain short-circuited on flavor alone.
what follows is mayhem.
this sweet, shy, socially anxious jock girl turns into a pussy-drunk animal in real time—gripping your hips tighter, tongue moving with this wild, instinctual rhythm like she’s starving. her mouth’s everywhere—sucking, licking, messy as hell, nose bumping against your clit as her moans vibrate straight into your core.
she’s fucking losing it down there.
and you? you’re barely breathing. twitching. whimpering. cursing god and biology and everything that led to you being flat on your back getting ruined by a virgin who apparently made oral sex her one true religion.
"fuuuck," you cry out as your hips buck.
abby grunts, arms locking down like steel. "stay still, baby. i need—fuck, i need more—"
you cum so hard your ears ring.
she doesn’t stop.
your hands are in her braid, yanking, nails digging into her scalp, and still—she’s groaning into you, grinding her thighs together, tongue curling around your clit with terrifying precision like she’s been practicing in her head for years.
“abby—abby—please—” you whine.
she pulls back, chin drenched, lips shiny, pupils blown wide.
"you okay?" she pants, voice shaking. "did i… was that too much?"
you can’t speak.
she swipes her thumb across your cunt—gently—then sucks it into her mouth with this fucked-out sigh like she’s tasting honey straight from the jar.
“…can i do it again?”
Tumblr media
chloe price
you always thought chloe talked a big game.
all that cocky smirking, the “yeah, i’ve done tons of stuff” energy, the cigarettes and leather jacket and endless flirtation—masking the fact that she’s never actually been between anyone’s legs before.
but now? now she’s got your thighs on her shoulders, face flushed, eyeliner smeared, and her voice cracking like a fucking teenage girl.
"holy shit. you’re so wet. are you—fuck—are you always like this?"
"chloe—"
"wait. waitwaitwait, i got this," she blurts out, slapping her hands to your hips like she’s steadying herself for a rollercoaster drop. her pupils are huge. she’s visibly trembling. still trying to act cool, even as her lips hover a breath away from your cunt.
then?
she dives in.
sloppy. enthusiastic. immediate mess.
chloe groans the moment her tongue hits you—like she’s tasting something she’s dreamed about a thousand times but didn’t think was real. her nose presses deep, her lips drag messily, open-mouthed kisses all over your clit like she doesn’t know where to focus—so she just does everything at once.
you jerk.
she moans.
"oh my fucking god," she rasps against your pussy, voice fucked raw. "this is so hot. i—i think i’m gonna die down here."
her hands are everywhere—clutching your thighs, squeezing your ass, sliding under your shirt like she can’t stand not touching all of you at once. her tongue gets more frantic by the second—circling, flicking, sucking like she’s chasing a high.
and the second you moan her name?
she loses all chill.
grabs your thighs like handlebars, drags you closer, then buries her tongue so deep into you that your back snaps off the bed.
“oh fuck— chloe—!”
you cum screaming.
and she rides it out like an absolute gremlin. groaning, humping the bed, tongue still going, tasting you like she’s tripping on something divine. one hand slips down her own jeans—desperate, needy—messy fingers working as she eats you through the aftershocks.
when she finally comes up for air, her face is destroyed. hair tangled. nose shiny. lip ring wet. and that stupid, perfect, smug little grin already back.
"guess i’m a natural," she pants, voice wrecked.
you try to speak. fail.
she wipes her mouth with the back of her hand, glances down at you, eyes dark and full of mischief.
“…wanna see if i can make you blackout?”
392 notes · View notes
mushroomsneedystuff · 3 months ago
Text
Streamer!Gamer!Kenma x MakeupInfluencer!Reader
CW: fem!reader, fingering, oral, nsfw, smut, kenma calls reader dumb/stupid, unprotected (pls wrap it up yall), AGED UP KENMA AND READER (early/mid 20s, but age isn't mentioned)
Tumblr media
'Kodzuken was live' is the notification that came up on your phone right as you had heard your boyfriend, Kenma, raging at his computer. You were editing one of your makeup tutorial videos, stifling a laugh at the curses that fill the room next to yours.
Luckily, you both have your own spaces. You live together, sure, but you both made enough money to get a 4 bedroom house. Two bedrooms were used as each of your "offices", one was a guest room (Kuroo or Shoyo's room depending on who was staying the night), and then your shared bedroom.
Hearing Kenna's voice, raising slightly at what you could assume was his teammates for whatever game he was playing now, was always both entertaining yet slightly annoying when you were trying to work.
The same could be said for him though, when he's filming some short videos for his sponsorships and social medias, he can commonly hear you filming your 'get ready with me' videos or streaming.
It ended very commonly with his fingers under your outfit, teasing you relentlessly for "trying to get his attention" (he really just wanted your attention).
Like right now. He just finished his stream, and he didn't bother with knocking before his arms were wrapping around you from behind, his hand sneaking down under your little pajama shorts.
"Kept being so loud. You want all our fans to know we're together?" He says with a small huff, clearly just slightly irritated over losing just a bit more than usual tonight. That would be forgotten soon, he had his perfect little trophy, his cute little girlfriend, being completely molded to his liking by his hands.
He had you whining and melting, begging him "Ken please? Kenma, 'm sorry". You'd don't even know what you were begging for, you just wanted something, anything more than just his fingers.
He drags you off of your desk, tugging you into your shared bedroom, and laying you down neatly on the queen bed.
"I should just put a ring on your finger, huh? It'll get you to shut up and stop interrupting my streams?" He teases lowly, half serious as he drags down your shorts and soft or ties together in a fluid motion. He doesn't give you a chance to even think about what he just said, what he had hinted at, his tongue was already dragging along your folds and clit. Within seconds, you were writhing out in pleasure and whining quietly.
Kenma always knew exactly what to do to get you where he wanted, whether that be overstimulated and begging him to slow down, edged and sensitive beyond reason, flushed out and breathless; you were his statue and he was the sculptor.
Right now? He wanted you absolutely flushed with pleasure, moans leaving your mouth instead of the giggles and talking that had been picked up by his mic while he was streaming.
"There you go... getting even stupider just with my tongue?" He grumbles out against your pussy, lapping lazily at your folds and clit with motions that had your back arching and thighs trembling.
He pulls away right before you could cum on his mouth, leaving one harsh flick of his tongue along your folds. He had his pants pulled down slightly, just enough with his boxers for his hard cock to jump out.
His thrusts are slow and deep, drawn out to make you whimper and beg for more. If it weren't for the insults being groaned into your ear, it might've felt like he was making love to you (he was. in his own, pent up way).
He doesn't allow you to cum, forcing your chin up to look at him through your half-lidded eyes full of tears. "Are you crying already? So dumb on my cock, huh?" He muffles a groan with a scoff, starting to pound into you faster when he feels your cunt clench around him at his words. "You like being my good, dumb girl?"
He lets out a breathless curse under his breath when your walls flutter around his cock, his eyes glaring down into yours. "Hold it. You couldn't hold back that loud voice of yours when I was streaming, so now you don't get to cum". His words are mean, forcing you to try your best to hold back the orgasm that seems to be getting closer and closer to crashing down on you as his hips fuck into your tight pretty hole.
It doesn't take long for Kenma to get to his own orgasm, his forehead leaning down onto yours as he finally presses a searing kiss to your lips. He borderline whines into your mouth, trying his best to hold back his own orgasm
"Such a good girl... listening to be so well..." He gasps out quietly, shushing your whines and begs to be able to cum. "Go ahead... cum for me as i fill up my pretty pussy"
Your orgasm hits you hard, and your cunt is squeezing around Kenma so tightly that it's almost painful. He thrusts harshly a few more times inside you before slamming into you harshly and stilling his hips. Large waves of his own cum shoot deep inside you, filling up your womb and pussy perfectly while he groans. He's insulting and complimenting you all at once, somewhat pussy drunk on the feeling of your pussy clenching and fluttering around him so tightly, milking him for his sperm and seed. He rolls his hips slowly just a few more times, drawing out both of your orgasms before slowly pulling back and laying next to you.
You're both panting, catching your breath as you hide your smile into his chest. You both calm down for a few moments before he's pecking your forehead before leaving to go grab a towel to clean you up.
417 notes · View notes
hoshifighting · 10 months ago
Text
woozi + fingering
Tumblr media Tumblr media
WARNINGS: fingering, teasing, pussy slapping, squirting, creaming.
he's got this thing about teasing you, taking his time, like he’s got all fucking day. you know he loves it when you’re desperate, all needy and cursing his name, so of course, he’s gotta drag it out. his fingers are just hovering, teasing, and you’re already fucking shaking. he loves to spread your pussy lips apart, holding you open just to circle your clit with the lightest touch, barely there, just enough to make you curse under your breath.
“fuck, stop teasing,” you hiss through clenched teeth, your hips bucking as he barely grazes your clit with that featherlight touch.
“nah, babe, i like it when you get all worked up like this,”
“fuck you,” you spit out, your voice ragged, but it’s more of a plea than anything. you’re on edge, every nerve screaming for more, and he knows it.
“say that again,” he smirks, and before you can even respond, he slaps your exposed clit, making you yelp, your whole body jerking in shock. it’s a sharp, stinging pain that fades into a dull throb, and you can’t help the way tears spring to your eyes, but he’s quick to hold you in place, his hand right back to spreading you open.
“you’re a fucking asshole,” you choke out, voice trembling as he keeps you spread open, sliding two fingers over the wetness pooling at your entrance. it’s humiliating, how wet you are, how your body reacts to his every touch. he gathers it up, spreading it over your clit, circling it faster this time, pressing harder on that nerve until you’re literally crying out, arching your back, pushing yourself against his hand.
“what was that, sweetheart?” he taunts, his voice low and rough as he watches the way your pussy throbs, glistening and wet. “still think i’m an asshole?”
“oh fuck… you’re gonna make me cum, you fucking dick,”
“yeah? gonna cum just from this?” he’s relentless, fingers working you over, and it’s too much, way too much, but you can’t stop it. your body’s so fucking close, the orgasm right there, but just when you’re about to tip over, he pulls away, leaving you panting and desperate.
“goddamn it, you know i was close,” you groan, but he just chuckles, knowing exactly what he’s doing, how far he can push you.
“oh, i know, babe,” he says, sliding his fingers back down, and this time he doesn’t tease, plunging them deep inside you, the wet sound echoing through the room, the slickness, makes you choke on your own breath, and he finds that spot inside you on the first try, like he’s got it memorized, like it’s fucking engraved on his brain.“i just wanted to feel how fucking wet you are for me first.”
“fuck, there… right there,” you gasp, his mind can repeat from back to front, the tutorial of how to make you cum undone with just a few strokes.
“there it is,” he whispers, more to himself than you, but you hear it, and it makes you shiver. he’s a big fan of slow fingering, dragging it out, feeling every twitch and spasm of your body around his fingers, but you’re always urging him to go faster, to fuck you harder.
“please, fuck, just—just go faster, i need it,” you beg, your voice trembling with desperation.
when he finally does, it’s like you can’t even believe your eyes. the speed and strength he puts into it, his fingers pistoning in and out of you, hitting that spot over and over, has you seeing stars. you’re gasping, choking on your own breath, your body convulsing around his hand.
“you like that?” he growls, his voice rough with effort, but there’s that smirk again, like he knows exactly what he’s doing to you. “you gonna squirt for me, babe? gonna make a fucking mess all over my hand?”
and you do, fuck, you do. the wet sounds are obscene, non-stop, and you can feel it, the slickness coating his fingers, his palm, dripping down your cunt. if you’re not squirting, you’re creaming around his fingers, the wetness just pouring out of you, making a mess of both of you.
“fuck, you’re so fucking wet,” he groans, his voice rough with need, but he doesn’t stop, doesn’t let up. “keep going, babe, don’t stop now. i wanna feel you come all over my fucking hand.”
and you do, again and again, your body trembling, convulsing, as he works you over, pushing you to the brink and then some. you’re a wreck, gasping, moaning, his fingers never stopping, even as the pleasure borders on pain, too much, too good. “please… please,” you sob, not even sure what you’re begging for anymore, but he knows, always knows.
960 notes · View notes
darcksama · 26 days ago
Text
youtube
Conheça essa nova versão do linux brasileiro, O mauana linux versão cristã.
0 notes
donjuaninhell · 1 year ago
Text
How I ditched streaming services and learned to love Linux: A step-by-step guide to building your very own personal media streaming server (V2.0: REVISED AND EXPANDED EDITION)
This is a revised, corrected and expanded version of my tutorial on setting up a personal media server that previously appeared on my old blog (donjuan-auxenfers). I expect that that post is still making the rounds (hopefully with my addendum on modifying group share permissions in Ubuntu to circumvent 0x8007003B "Unexpected Network Error" messages in Windows 10/11 when transferring files) but I have no way of checking. Anyway this new revised version of the tutorial corrects one or two small errors I discovered when rereading what I wrote, adds links to all products mentioned and is just more polished generally. I also expanded it a bit, pointing more adventurous users toward programs such as Sonarr/Radarr/Lidarr and Overseerr which can be used for automating user requests and media collection.
So then, what is this tutorial? This is a tutorial on how to build and set up your own personal media server using Ubuntu as an operating system and Plex (or Jellyfin) to not only manage your media, but to also stream that media to your devices both at home and abroad anywhere in the world where you have an internet connection. Its intent is to show you how building a personal media server and stuffing it full of films, TV, and music that you acquired through indiscriminate and voracious media piracy various legal methods will free you to completely ditch paid streaming services. No more will you have to pay for Disney+, Netflix, HBOMAX, Hulu, Amazon Prime, Peacock, CBS All Access, Paramount+, Crave or any other streaming service that is not named Criterion Channel. Instead whenever you want to watch your favourite films and television shows, you’ll have your own personal service that only features things that you want to see, with files that you have control over. And for music fans out there, both Jellyfin and Plex support music streaming, meaning you can even ditch music streaming services. Goodbye Spotify, Youtube Music, Tidal and Apple Music, welcome back unreasonably large MP3 (or FLAC) collections.
On the hardware front, I’m going to offer a few options catered towards different budgets and media library sizes. The cost of getting a media server up and running using this guide will cost you anywhere from $450 CAD/$325 USD at the low end to $1500 CAD/$1100 USD at the high end (it could go higher). My server was priced closer to the higher figure, but I went and got a lot more storage than most people need. If that seems like a little much, consider for a moment, do you have a roommate, a close friend, or a family member who would be willing to chip in a few bucks towards your little project provided they get access? Well that's how I funded my server. It might also be worth thinking about the cost over time, i.e. how much you spend yearly on subscriptions vs. a one time cost of setting up a server. Additionally there's just the joy of being able to scream "fuck you" at all those show cancelling, library deleting, hedge fund vampire CEOs who run the studios through denying them your money. Drive a stake through David Zaslav's heart.
On the software side I will walk you step-by-step through installing Ubuntu as your server's operating system, configuring your storage as a RAIDz array with ZFS, sharing your zpool to Windows with Samba, running a remote connection between your server and your Windows PC, and then a little about started with Plex/Jellyfin. Every terminal command you will need to input will be provided, and I even share a custom #bash script that will make used vs. available drive space on your server display correctly in Windows.
If you have a different preferred flavour of Linux (Arch, Manjaro, Redhat, Fedora, Mint, OpenSUSE, CentOS, Slackware etc. et. al.) and are aching to tell me off for being basic and using Ubuntu, this tutorial is not for you. The sort of person with a preferred Linux distro is the sort of person who can do this sort of thing in their sleep. Also I don't care. This tutorial is intended for the average home computer user. This is also why we’re not using a more exotic home server solution like running everything through Docker Containers and managing it through a dashboard like Homarr or Heimdall. While such solutions are fantastic and can be very easy to maintain once you have it all set up, wrapping your brain around Docker is a whole thing in and of itself. If you do follow this tutorial and had fun putting everything together, then I would encourage you to return in a year’s time, do your research and set up everything with Docker Containers.
Lastly, this is a tutorial aimed at Windows users. Although I was a daily user of OS X for many years (roughly 2008-2023) and I've dabbled quite a bit with various Linux distributions (mostly Ubuntu and Manjaro), my primary OS these days is Windows 11. Many things in this tutorial will still be applicable to Mac users, but others (e.g. setting up shares) you will have to look up for yourself. I doubt it would be difficult to do so.
Nothing in this tutorial will require feats of computing expertise. All you will need is a basic computer literacy (i.e. an understanding of what a filesystem and directory are, and a degree of comfort in the settings menu) and a willingness to learn a thing or two. While this guide may look overwhelming at first glance, it is only because I want to be as thorough as possible. I want you to understand exactly what it is you're doing, I don't want you to just blindly follow steps. If you half-way know what you’re doing, you will be much better prepared if you ever need to troubleshoot.
Honestly, once you have all the hardware ready it shouldn't take more than an afternoon or two to get everything up and running.
(This tutorial is just shy of seven thousand words long so the rest is under the cut.)
Step One: Choosing Your Hardware
Linux is a light weight operating system, depending on the distribution there's close to no bloat. There are recent distributions available at this very moment that will run perfectly fine on a fourteen year old i3 with 4GB of RAM. Moreover, running Plex or Jellyfin isn’t resource intensive in 90% of use cases. All this is to say, we don’t require an expensive or powerful computer. This means that there are several options available: 1) use an old computer you already have sitting around but aren't using 2) buy a used workstation from eBay, or what I believe to be the best option, 3) order an N100 Mini-PC from AliExpress or Amazon.
Note: If you already have an old PC sitting around that you’ve decided to use, fantastic, move on to the next step.
When weighing your options, keep a few things in mind: the number of people you expect to be streaming simultaneously at any one time, the resolution and bitrate of your media library (4k video takes a lot more processing power than 1080p) and most importantly, how many of those clients are going to be transcoding at any one time. Transcoding is what happens when the playback device does not natively support direct playback of the source file. This can happen for a number of reasons, such as the playback device's native resolution being lower than the file's internal resolution, or because the source file was encoded in a video codec unsupported by the playback device.
Ideally we want any transcoding to be performed by hardware. This means we should be looking for a computer with an Intel processor with Quick Sync. Quick Sync is a dedicated core on the CPU die designed specifically for video encoding and decoding. This specialized hardware makes for highly efficient transcoding both in terms of processing overhead and power draw. Without these Quick Sync cores, transcoding must be brute forced through software. This takes up much more of a CPU’s processing power and requires much more energy. But not all Quick Sync cores are created equal and you need to keep this in mind if you've decided either to use an old computer or to shop for a used workstation on eBay
Any Intel processor from second generation Core (Sandy Bridge circa 2011) onward has Quick Sync cores. It's not until 6th gen (Skylake), however, that the cores support the H.265 HEVC codec. Intel’s 10th gen (Comet Lake) processors introduce support for 10bit HEVC and HDR tone mapping. And the recent 12th gen (Alder Lake) processors brought with them hardware AV1 decoding. As an example, while an 8th gen (Kaby Lake) i5-8500 will be able to hardware transcode a H.265 encoded file, it will fall back to software transcoding if given a 10bit H.265 file. If you’ve decided to use that old PC or to look on eBay for an old Dell Optiplex keep this in mind.
Note 1: The price of old workstations varies wildly and fluctuates frequently. If you get lucky and go shopping shortly after a workplace has liquidated a large number of their workstations you can find deals for as low as $100 on a barebones system, but generally an i5-8500 workstation with 16gb RAM will cost you somewhere in the area of $260 CAD/$200 USD.
Note 2: The AMD equivalent to Quick Sync is called Video Core Next, and while it's fine, it's not as efficient and not as mature a technology. It was only introduced with the first generation Ryzen CPUs and it only got decent with their newest CPUs, we want something cheap.
Alternatively you could forgo having to keep track of what generation of CPU is equipped with Quick Sync cores that feature support for which codecs, and just buy an N100 mini-PC. For around the same price or less of a used workstation you can pick up a mini-PC with an Intel N100 processor. The N100 is a four-core processor based on the 12th gen Alder Lake architecture and comes equipped with the latest revision of the Quick Sync cores. These little processors offer astounding hardware transcoding capabilities for their size and power draw. Otherwise they perform equivalent to an i5-6500, which isn't a terrible CPU. A friend of mine uses an N100 machine as a dedicated retro emulation gaming system and it does everything up to 6th generation consoles just fine. The N100 is also a remarkably efficient chip, it sips power. In fact, the difference between running one of these and an old workstation could work out to hundreds of dollars a year in energy bills depending on where you live.
You can find these Mini-PCs all over Amazon or for a little cheaper on AliExpress. They range in price from $170 CAD/$125 USD for a no name N100 with 8GB RAM to $280 CAD/$200 USD for a Beelink S12 Pro with 16GB RAM. The brand doesn't really matter, they're all coming from the same three factories in Shenzen, go for whichever one fits your budget or has features you want. 8GB RAM should be enough, Linux is lightweight and Plex only calls for 2GB RAM. 16GB RAM might result in a slightly snappier experience, especially with ZFS. A 256GB SSD is more than enough for what we need as a boot drive, but going for a bigger drive might allow you to get away with things like creating preview thumbnails for Plex, but it’s up to you and your budget.
The Mini-PC I wound up buying was a Firebat AK2 Plus with 8GB RAM and a 256GB SSD. It looks like this:
Tumblr media
Note: Be forewarned that if you decide to order a Mini-PC from AliExpress, note the type of power adapter it ships with. The mini-PC I bought came with an EU power adapter and I had to supply my own North American power supply. Thankfully this is a minor issue as barrel plug 30W/12V/2.5A power adapters are easy to find and can be had for $10.
Step Two: Choosing Your Storage
Storage is the most important part of our build. It is also the most expensive. Thankfully it’s also the most easily upgrade-able down the line.
For people with a smaller media collection (4TB to 8TB), a more limited budget, or who will only ever have two simultaneous streams running, I would say that the most economical course of action would be to buy a USB 3.0 8TB external HDD. Something like this one from Western Digital or this one from Seagate. One of these external drives will cost you in the area of $200 CAD/$140 USD. Down the line you could add a second external drive or replace it with a multi-drive RAIDz set up such as detailed below.
If a single external drive the path for you, move on to step three.
For people with larger media libraries (12TB+), who prefer media in 4k, or care who about data redundancy, the answer is a RAID array featuring multiple HDDs in an enclosure.
Note: If you are using an old PC or used workstatiom as your server and have the room for at least three 3.5" drives, and as many open SATA ports on your mother board you won't need an enclosure, just install the drives into the case. If your old computer is a laptop or doesn’t have room for more internal drives, then I would suggest an enclosure.
The minimum number of drives needed to run a RAIDz array is three, and seeing as RAIDz is what we will be using, you should be looking for an enclosure with three to five bays. I think that four disks makes for a good compromise for a home server. Regardless of whether you go for a three, four, or five bay enclosure, do be aware that in a RAIDz array the space equivalent of one of the drives will be dedicated to parity at a ratio expressed by the equation 1 − 1/n i.e. in a four bay enclosure equipped with four 12TB drives, if we configured our drives in a RAIDz1 array we would be left with a total of 36TB of usable space (48TB raw size). The reason for why we might sacrifice storage space in such a manner will be explained in the next section.
A four bay enclosure will cost somewhere in the area of $200 CDN/$140 USD. You don't need anything fancy, we don't need anything with hardware RAID controls (RAIDz is done entirely in software) or even USB-C. An enclosure with USB 3.0 will perform perfectly fine. Don’t worry too much about USB speed bottlenecks. A mechanical HDD will be limited by the speed of its mechanism long before before it will be limited by the speed of a USB connection. I've seen decent looking enclosures from TerraMaster, Yottamaster, Mediasonic and Sabrent.
When it comes to selecting the drives, as of this writing, the best value (dollar per gigabyte) are those in the range of 12TB to 20TB. I settled on 12TB drives myself. If 12TB to 20TB drives are out of your budget, go with what you can afford, or look into refurbished drives. I'm not sold on the idea of refurbished drives but many people swear by them.
When shopping for harddrives, search for drives designed specifically for NAS use. Drives designed for NAS use typically have better vibration dampening and are designed to be active 24/7. They will also often make use of CMR (conventional magnetic recording) as opposed to SMR (shingled magnetic recording). This nets them a sizable read/write performance bump over typical desktop drives. Seagate Ironwolf and Toshiba NAS are both well regarded brands when it comes to NAS drives. I would avoid Western Digital Red drives at this time. WD Reds were a go to recommendation up until earlier this year when it was revealed that they feature firmware that will throw up false SMART warnings telling you to replace the drive at the three year mark quite often when there is nothing at all wrong with that drive. It will likely even be good for another six, seven, or more years.
Tumblr media
Step Three: Installing Linux
For this step you will need a USB thumbdrive of at least 6GB in capacity, an .ISO of Ubuntu, and a way to make that thumbdrive bootable media.
First download a copy of Ubuntu desktop (for best performance we could download the Server release, but for new Linux users I would recommend against the server release. The server release is strictly command line interface only, and having a GUI is very helpful for most people. Not many people are wholly comfortable doing everything through the command line, I'm certainly not one of them, and I grew up with DOS 6.0. 22.04.3 Jammy Jellyfish is the current Long Term Service release, this is the one to get.
Download the .ISO and then download and install balenaEtcher on your Windows PC. BalenaEtcher is an easy to use program for creating bootable media, you simply insert your thumbdrive, select the .ISO you just downloaded, and it will create a bootable installation media for you.
Once you've made a bootable media and you've got your Mini-PC (or you old PC/used workstation) in front of you, hook it directly into your router with an ethernet cable, and then plug in the HDD enclosure, a monitor, a mouse and a keyboard. Now turn that sucker on and hit whatever key gets you into the BIOS (typically ESC, DEL or F2). If you’re using a Mini-PC check to make sure that the P1 and P2 power limits are set correctly, my N100's P1 limit was set at 10W, a full 20W under the chip's power limit. Also make sure that the RAM is running at the advertised speed. My Mini-PC’s RAM was set at 2333Mhz out of the box when it should have been 3200Mhz. Once you’ve done that, key over to the boot order and place the USB drive first in the boot order. Then save the BIOS settings and restart.
After you restart you’ll be greeted by Ubuntu's installation screen. Installing Ubuntu is really straight forward, select the "minimal" installation option, as we won't need anything on this computer except for a browser (Ubuntu comes preinstalled with Firefox) and Plex Media Server/Jellyfin Media Server. Also remember to delete and reformat that Windows partition! We don't need it.
Step Four: Installing ZFS and Setting Up the RAIDz Array
Note: If you opted for just a single external HDD skip this step and move onto setting up a Samba share.
Once Ubuntu is installed it's time to configure our storage by installing ZFS to build our RAIDz array. ZFS is a "next-gen" file system that is both massively flexible and massively complex. It's capable of snapshot backup, self healing error correction, ZFS pools can be configured with drives operating in a supplemental manner alongside the storage vdev (e.g. fast cache, dedicated secondary intent log, hot swap spares etc.). It's also a file system very amenable to fine tuning. Block and sector size are adjustable to use case and you're afforded the option of different methods of inline compression. If you'd like a very detailed overview and explanation of its various features and tips on tuning a ZFS array check out these articles from Ars Technica. For now we're going to ignore all these features and keep it simple, we're going to pull our drives together into a single vdev running in RAIDz which will be the entirety of our zpool, no fancy cache drive or SLOG.
Open up the terminal and type the following commands:
sudo apt update
then
sudo apt install zfsutils-linux
This will install the ZFS utility. Verify that it's installed with the following command:
zfs --version
Now, it's time to check that the HDDs we have in the enclosure are healthy, running, and recognized. We also want to find out their device IDs and take note of them:
sudo fdisk -1
Note: You might be wondering why some of these commands require "sudo" in front of them while others don't. "Sudo" is short for "super user do”. When and where "sudo" is used has to do with the way permissions are set up in Linux. Only the "root" user has the access level to perform certain tasks in Linux. As a matter of security and safety regular user accounts are kept separate from the "root" user. It's not advised (or even possible) to boot into Linux as "root" with most modern distributions. Instead by using "sudo" our regular user account is temporarily given the power to do otherwise forbidden things. Don't worry about it too much at this stage, but if you want to know more check out this introduction.
If everything is working you should get a list of the various drives detected along with their device IDs which will look like this: /dev/sdc. You can also check the device IDs of the drives by opening the disk utility app. Jot these IDs down as we'll need them for our next step, creating our RAIDz array.
RAIDz is similar to RAID-5 in that instead of striping your data over multiple disks, exchanging redundancy for speed and available space (RAID-0), or mirroring your data writing by two copies of every piece (RAID-1), it instead writes parity blocks across the disks in addition to striping, this provides a balance of speed, redundancy and available space. If a single drive fails, the parity blocks on the working drives can be used to reconstruct the entire array as soon as a replacement drive is added.
Additionally, RAIDz improves over some of the common RAID-5 flaws. It's more resilient and capable of self healing, as it is capable of automatically checking for errors against a checksum. It's more forgiving in this way, and it's likely that you'll be able to detect when a drive is dying well before it fails. A RAIDz array can survive the loss of any one drive.
Note: While RAIDz is indeed resilient, if a second drive fails during the rebuild, you're fucked. Always keep backups of things you can't afford to lose. This tutorial, however, is not about proper data safety.
To create the pool, use the following command:
sudo zpool create "zpoolnamehere" raidz "device IDs of drives we're putting in the pool"
For example, let's creatively name our zpool "mypool". This poil will consist of four drives which have the device IDs: sdb, sdc, sdd, and sde. The resulting command will look like this:
sudo zpool create mypool raidz /dev/sdb /dev/sdc /dev/sdd /dev/sde
If as an example you bought five HDDs and decided you wanted more redundancy dedicating two drive to this purpose, we would modify the command to "raidz2" and the command would look something like the following:
sudo zpool create mypool raidz2 /dev/sdb /dev/sdc /dev/sdd /dev/sde /dev/sdf
An array configured like this is known as RAIDz2 and is able to survive two disk failures.
Once the zpool has been created, we can check its status with the command:
zpool status
Or more concisely with:
zpool list
The nice thing about ZFS as a file system is that a pool is ready to go immediately after creation. If we were to set up a traditional RAID-5 array using mbam, we'd have to sit through a potentially hours long process of reformatting and partitioning the drives. Instead we're ready to go right out the gates.
The zpool should be automatically mounted to the filesystem after creation, check on that with the following:
df -hT | grep zfs
Note: If your computer ever loses power suddenly, say in event of a power outage, you may have to re-import your pool. In most cases, ZFS will automatically import and mount your pool, but if it doesn’t and you can't see your array, simply open the terminal and type sudo zpool import -a.
By default a zpool is mounted at /"zpoolname". The pool should be under our ownership but let's make sure with the following command:
sudo chown -R "yourlinuxusername" /"zpoolname"
Note: Changing file and folder ownership with "chown" and file and folder permissions with "chmod" are essential commands for much of the admin work in Linux, but we won't be dealing with them extensively in this guide. If you'd like a deeper tutorial and explanation you can check out these two guides: chown and chmod.
Tumblr media
You can access the zpool file system through the GUI by opening the file manager (the Ubuntu default file manager is called Nautilus) and clicking on "Other Locations" on the sidebar, then entering the Ubuntu file system and looking for a folder with your pool's name. Bookmark the folder on the sidebar for easy access.
Tumblr media
Your storage pool is now ready to go. Assuming that we already have some files on our Windows PC we want to copy to over, we're going to need to install and configure Samba to make the pool accessible in Windows.
Step Five: Setting Up Samba/Sharing
Samba is what's going to let us share the zpool with Windows and allow us to write to it from our Windows machine. First let's install Samba with the following commands:
sudo apt-get update
then
sudo apt-get install samba
Next create a password for Samba.
sudo smbpswd -a "yourlinuxusername"
It will then prompt you to create a password. Just reuse your Ubuntu user password for simplicity's sake.
Note: if you're using just a single external drive replace the zpool location in the following commands with wherever it is your external drive is mounted, for more information see this guide on mounting an external drive in Ubuntu.
After you've created a password we're going to create a shareable folder in our pool with this command
mkdir /"zpoolname"/"foldername"
Now we're going to open the smb.conf file and make that folder shareable. Enter the following command.
sudo nano /etc/samba/smb.conf
This will open the .conf file in nano, the terminal text editor program. Now at the end of smb.conf add the following entry:
["foldername"]
path = /"zpoolname"/"foldername"
available = yes
valid users = "yourlinuxusername"
read only = no
writable = yes
browseable = yes
guest ok = no
Ensure that there are no line breaks between the lines and that there's a space on both sides of the equals sign. Our next step is to allow Samba traffic through the firewall:
sudo ufw allow samba
Finally restart the Samba service:
sudo systemctl restart smbd
At this point we'll be able to access to the pool, browse its contents, and read and write to it from Windows. But there's one more thing left to do, Windows doesn't natively support the ZFS file systems and will read the used/available/total space in the pool incorrectly. Windows will read available space as total drive space, and all used space as null. This leads to Windows only displaying a dwindling amount of "available" space as the drives are filled. We can fix this! Functionally this doesn't actually matter, we can still write and read to and from the disk, it just makes it difficult to tell at a glance the proportion of used/available space, so this is an optional step but one I recommend (this step is also unnecessary if you're just using a single external drive). What we're going to do is write a little shell script in #bash. Open nano with the terminal with the command:
nano
Now insert the following code:
#!/bin/bash CUR_PATH=`pwd` ZFS_CHECK_OUTPUT=$(zfs get type $CUR_PATH 2>&1 > /dev/null) > /dev/null if [[ $ZFS_CHECK_OUTPUT == *not\ a\ ZFS* ]] then IS_ZFS=false else IS_ZFS=true fi if [[ $IS_ZFS = false ]] then df $CUR_PATH | tail -1 | awk '{print $2" "$4}' else USED=$((`zfs get -o value -Hp used $CUR_PATH` / 1024)) > /dev/null AVAIL=$((`zfs get -o value -Hp available $CUR_PATH` / 1024)) > /dev/null TOTAL=$(($USED+$AVAIL)) > /dev/null echo $TOTAL $AVAIL fi
Save the script as "dfree.sh" to /home/"yourlinuxusername" then change the ownership of the file to make it executable with this command:
sudo chmod 774 dfree.sh
Now open smb.conf with sudo again:
sudo nano /etc/samba/smb.conf
Now add this entry to the top of the configuration file to direct Samba to use the results of our script when Windows asks for a reading on the pool's used/available/total drive space:
[global]
dfree command = /home/"yourlinuxusername"/dfree.sh
Save the changes to smb.conf and then restart Samba again with the terminal:
sudo systemctl restart smbd
Now there’s one more thing we need to do to fully set up the Samba share, and that’s to modify a hidden group permission. In the terminal window type the following command:
usermod -a -G sambashare “yourlinuxusername”
Then restart samba again:
sudo systemctl restart smbd
If we don’t do this last step, everything will appear to work fine, and you will even be able to see and map the drive from Windows and even begin transferring files, but you'd soon run into a lot of frustration. As every ten minutes or so a file would fail to transfer and you would get a window announcing “0x8007003B Unexpected Network Error”. This window would require your manual input to continue the transfer with the file next in the queue. And at the end it would reattempt to transfer whichever files failed the first time around. 99% of the time they’ll go through that second try, but this is still all a major pain in the ass. Especially if you’ve got a lot of data to transfer or you want to step away from the computer for a while.
It turns out samba can act a little weirdly with the higher read/write speeds of RAIDz arrays and transfers from Windows, and will intermittently crash and restart itself if this group option isn’t changed. Inputting the above command will prevent you from ever seeing that window.
The last thing we're going to do before switching over to our Windows PC is grab the IP address of our Linux machine. Enter the following command:
hostname -I
This will spit out this computer's IP address on the local network (it will look something like 192.168.0.x), write it down. It might be a good idea once you're done here to go into your router settings and reserving that IP for your Linux system in the DHCP settings. Check the manual for your specific model router on how to access its settings, typically it can be accessed by opening a browser and typing http:\\192.168.0.1 in the address bar, but your router may be different.
Okay we’re done with our Linux computer for now. Get on over to your Windows PC, open File Explorer, right click on Network and click "Map network drive". Select Z: as the drive letter (you don't want to map the network drive to a letter you could conceivably be using for other purposes) and enter the IP of your Linux machine and location of the share like so: \\"LINUXCOMPUTERLOCALIPADDRESSGOESHERE"\"zpoolnamegoeshere"\. Windows will then ask you for your username and password, enter the ones you set earlier in Samba and you're good. If you've done everything right it should look something like this:
Tumblr media
You can now start moving media over from Windows to the share folder. It's a good idea to have a hard line running to all machines. Moving files over Wi-Fi is going to be tortuously slow, the only thing that’s going to make the transfer time tolerable (hours instead of days) is a solid wired connection between both machines and your router.
Step Six: Setting Up Remote Desktop Access to Your Server
After the server is up and going, you’ll want to be able to access it remotely from Windows. Barring serious maintenance/updates, this is how you'll access it most of the time. On your Linux system open the terminal and enter:
sudo apt install xrdp
Then:
sudo systemctl enable xrdp
Once it's finished installing, open “Settings” on the sidebar and turn off "automatic login" in the User category. Then log out of your account. Attempting to remotely connect to your Linux computer while you’re logged in will result in a black screen!
Now get back on your Windows PC, open search and look for "RDP". A program called "Remote Desktop Connection" should pop up, open this program as an administrator by right-clicking and selecting “run as an administrator”. You’ll be greeted with a window. In the field marked “Computer” type in the IP address of your Linux computer. Press connect and you'll be greeted with a new window and prompt asking for your username and password. Enter your Ubuntu username and password here.
Tumblr media
If everything went right, you’ll be logged into your Linux computer. If the performance is sluggish, adjust the display options. Lowering the resolution and colour depth do a lot to make the interface feel snappier.
Tumblr media
Remote access is how we're going to be using our Linux system from now, barring edge cases like needing to get into the BIOS or upgrading to a new version of Ubuntu. Everything else from performing maintenance like a monthly zpool scrub to checking zpool status and updating software can all be done remotely.
Tumblr media
This is how my server lives its life now, happily humming and chirping away on the floor next to the couch in a corner of the living room.
Step Seven: Plex Media Server/Jellyfin
Okay we’ve got all the ground work finished and our server is almost up and running. We’ve got Ubuntu up and running, our storage array is primed, we’ve set up remote connections and sharing, and maybe we’ve moved over some of favourite movies and TV shows.
Now we need to decide on the media server software to use which will stream our media to us and organize our library. For most people I’d recommend Plex. It just works 99% of the time. That said, Jellyfin has a lot to recommend it by too, even if it is rougher around the edges. Some people run both simultaneously, it’s not that big of an extra strain. I do recommend doing a little bit of your own research into the features each platform offers, but as a quick run down, consider some of the following points:
Plex is closed source and is funded through PlexPass purchases while Jellyfin is open source and entirely user driven. This means a number of things: for one, Plex requires you to purchase a “PlexPass” (purchased as a one time lifetime fee $159.99 CDN/$120 USD or paid for on a monthly or yearly subscription basis) in order to access to certain features, like hardware transcoding (and we want hardware transcoding) or automated intro/credits detection and skipping, Jellyfin offers some of these features for free through plugins. Plex supports a lot more devices than Jellyfin and updates more frequently. That said, Jellyfin's Android and iOS apps are completely free, while the Plex Android and iOS apps must be activated for a one time cost of $6 CDN/$5 USD. But that $6 fee gets you a mobile app that is much more functional and features a unified UI across platforms, the Plex mobile apps are simply a more polished experience. The Jellyfin apps are a bit of a mess and the iOS and Android versions are very different from each other.
Jellyfin’s actual media player is more fully featured than Plex's, but on the other hand Jellyfin's UI, library customization and automatic media tagging really pale in comparison to Plex. Streaming your music library is free through both Jellyfin and Plex, but Plex offers the PlexAmp app for dedicated music streaming which boasts a number of fantastic features, unfortunately some of those fantastic features require a PlexPass. If your internet is down, Jellyfin can still do local streaming, while Plex can fail to play files unless you've got it set up a certain way. Jellyfin has a slew of neat niche features like support for Comic Book libraries with the .cbz/.cbt file types, but then Plex offers some free ad-supported TV and films, they even have a free channel that plays nothing but Classic Doctor Who.
Ultimately it's up to you, I settled on Plex because although some features are pay-walled, it just works. It's more reliable and easier to use, and a one-time fee is much easier to swallow than a subscription. I had a pretty easy time getting my boomer parents and tech illiterate brother introduced to and using Plex and I don't know if I would've had as easy a time doing that with Jellyfin. I do also need to mention that Jellyfin does take a little extra bit of tinkering to get going in Ubuntu, you’ll have to set up process permissions, so if you're more tolerant to tinkering, Jellyfin might be up your alley and I’ll trust that you can follow their installation and configuration guide. For everyone else, I recommend Plex.
So pick your poison: Plex or Jellyfin.
Note: The easiest way to download and install either of these packages in Ubuntu is through Snap Store.
After you've installed one (or both), opening either app will launch a browser window into the browser version of the app allowing you to set all the options server side.
The process of adding creating media libraries is essentially the same in both Plex and Jellyfin. You create a separate libraries for Television, Movies, and Music and add the folders which contain the respective types of media to their respective libraries. The only difficult or time consuming aspect is ensuring that your files and folders follow the appropriate naming conventions:
Plex naming guide for Movies
Plex naming guide for Television
Jellyfin follows the same naming rules but I find their media scanner to be a lot less accurate and forgiving than Plex. Once you've selected the folders to be scanned the service will scan your files, tagging everything and adding metadata. Although I find do find Plex more accurate, it can still erroneously tag some things and you might have to manually clean up some tags in a large library. (When I initially created my library it tagged the 1963-1989 Doctor Who as some Korean soap opera and I needed to manually select the correct match after which everything was tagged normally.) It can also be a bit testy with anime (especially OVAs) be sure to check TVDB to ensure that you have your files and folders structured and named correctly. If something is not showing up at all, double check the name.
Once that's done, organizing and customizing your library is easy. You can set up collections, grouping items together to fit a theme or collect together all the entries in a franchise. You can make playlists, and add custom artwork to entries. It's fun setting up collections with posters to match, there are even several websites dedicated to help you do this like PosterDB. As an example, below are two collections in my library, one collecting all the entries in a franchise, the other follows a theme.
Tumblr media
My Star Trek collection, featuring all eleven television series, and thirteen films.
Tumblr media
My Best of the Worst collection, featuring sixty-nine films previously showcased on RedLetterMedia’s Best of the Worst. They’re all absolutely terrible and I love them.
As for settings, ensure you've got Remote Access going, it should work automatically and be sure to set your upload speed after running a speed test. In the library settings set the database cache to 2000MB to ensure a snappier and more responsive browsing experience, and then check that playback quality is set to original/maximum. If you’re severely bandwidth limited on your upload and have remote users, you might want to limit the remote stream bitrate to something more reasonable, just as a note of comparison Netflix’s 1080p bitrate is approximately 5Mbps, although almost anyone watching through a chromium based browser is streaming at 720p and 3mbps. Other than that you should be good to go. For actually playing your files, there's a Plex app for just about every platform imaginable. I mostly watch television and films on my laptop using the Windows Plex app, but I also use the Android app which can broadcast to the chromecast connected to the TV in the office and the Android TV app for our smart TV. Both are fully functional and easy to navigate, and I can also attest to the OS X version being equally functional.
Part Eight: Finding Media
Now, this is not really a piracy tutorial, there are plenty of those out there. But if you’re unaware, BitTorrent is free and pretty easy to use, just pick a client (qBittorrent is the best) and go find some public trackers to peruse. Just know now that all the best trackers are private and invite only, and that they can be exceptionally difficult to get into. I’m already on a few, and even then, some of the best ones are wholly out of my reach.
If you decide to take the left hand path and turn to Usenet you’ll have to pay. First you’ll need to sign up with a provider like Newshosting or EasyNews for access to Usenet itself, and then to actually find anything you’re going to need to sign up with an indexer like NZBGeek or NZBFinder. There are dozens of indexers, and many people cross post between them, but for more obscure media it’s worth checking multiple. You’ll also need a binary downloader like SABnzbd. That caveat aside, Usenet is faster, bigger, older, less traceable than BitTorrent, and altogether slicker. I honestly prefer it, and I'm kicking myself for taking this long to start using it because I was scared off by the price. I’ve found so many things on Usenet that I had sought in vain elsewhere for years, like a 2010 Italian film about a massacre perpetrated by the SS that played the festival circuit but never received a home media release; some absolute hero uploaded a rip of a festival screener DVD to Usenet. Anyway, figure out the rest of this shit on your own and remember to use protection, get yourself behind a VPN, use a SOCKS5 proxy with your BitTorrent client, etc.
On the legal side of things, if you’re around my age, you (or your family) probably have a big pile of DVDs and Blu-Rays sitting around unwatched and half forgotten. Why not do a bit of amateur media preservation, rip them and upload them to your server for easier access? (Your tools for this are going to be Handbrake to do the ripping and AnyDVD to break any encryption.) I went to the trouble of ripping all my SCTV DVDs (five box sets worth) because none of it is on streaming nor could it be found on any pirate source I tried. I’m glad I did, forty years on it’s still one of the funniest shows to ever be on TV.
Part Nine/Epilogue: Sonarr/Radarr/Lidarr and Overseerr
There are a lot of ways to automate your server for better functionality or to add features you and other users might find useful. Sonarr, Radarr, and Lidarr are a part of a suite of “Servarr” services (there’s also Readarr for books and Whisparr for adult content) that allow you to automate the collection of new episodes of TV shows (Sonarr), new movie releases (Radarr) and music releases (Lidarr). They hook in to your BitTorrent client or Usenet binary newsgroup downloader and crawl your preferred Torrent trackers and Usenet indexers, alerting you to new releases and automatically grabbing them. You can also use these services to manually search for new media, and even replace/upgrade your existing media with better quality uploads. They’re really a little tricky to set up on a bare metal Ubuntu install (ideally you should be running them in Docker Containers), and I won’t be providing a step by step on installing and running them, I’m simply making you aware of their existence.
The other bit of kit I want to make you aware of is Overseerr which is a program that scans your Plex media library and will serve recommendations based on what you like. It also allows you and your users to request specific media. It can even be integrated with Sonarr/Radarr/Lidarr so that fulfilling those requests is fully automated.
And you're done. It really wasn't all that hard. Enjoy your media. Enjoy the control you have over that media. And be safe in the knowledge that no hedgefund CEO motherfucker who hates the movies but who is somehow in control of a major studio will be able to disappear anything in your library as a tax write-off.
1K notes · View notes