GitHub上开源版「抖音」,火了!

开源Flutter3.19仿抖音实战(开发自己的抖音APP) 开源Flutter3.19仿抖音实战(开发自己的抖音APP),最近有空的时候用flutter3做了一个抖音的项目,方便大家学习,提供源码,有操作思路。原创开发基于flutter3.19.5+dart3.3.3+getx等技术开发仿抖音app实战项目。实现了类似抖音整屏丝滑式上下滑动视频、左右滑动切换页面模块 阅读详情
AI摘要

本文介绍了模仿抖音的移动端开源项目Douyin,基于Vue和Vite技术栈,通过axios-mock-adapter模拟接口数据。项目可运行于Node环境中,提供详细部署步骤并推荐Vercel进行在线访问。

转自:OSC开源社区

今天就不聊太多了,简单介绍一个 douyin 开源项目。

douyin 是一个模仿抖音的移动端短视频开源项目,它基于 Vue、Vite实现。使用了最新的 Vue 全家桶技术栈,接口数据通过 axios-mock-adapter模拟。

7ff3b1a1632d1aff8021fdd05b333c35.jpeg

项目地址:

https://github.com/zyronon/douyin

效果截图

8091eef81a8601405fbec8976175fa9d.png

f8f8324592d8a6f10bf7a2679f24047e.gif

ffd5af8328357a50a911f8911ab44161.gif

07cd3e5daa69a4fefde9815c64d1f923.jpeg

运行项目

本项目是基于 Vue 开发的,需要 node 环境来运行。

1、安装 NodeJS,参考官方文档

2、安装 pnpm 包管理工具,运行 npm install -g pnpm 来安装

3、使用 git clone https://github.com/zyronon/douyin.git 下载项目到本地

4、进入项目目录 cd douyin,在项目根目录下,运行 pnpm install 来下载依赖。

5、执行 pnpm dev 来启动项目,项目默认地址为 http://localhost:3000

6、在浏览器中打开 http://localhost:3000来访问项目。Chrome 切换成手机模式快捷键,先按 F12 调出控制台,再按 Ctrl+Shift+M(设备仿真模拟)

在线访问

Vercel(国内推荐访问这个):

http://dy.ttentau.top

注意:PC 浏览器请用手机模式访问。先按 F12 调出控制台,再按 Ctrl+Shift+M 切换到手机模式

注意:手机请用 Via 浏览器或者 Chrome 浏览器预览。其它浏览器会强制将视频全屏,导致样式失效


根据仓库的 commit 记录,作者早在 6 年前就已经启动了这个项目,坚持到现在仍未放弃,并且无私地开源了出来。真乃我辈楷模!

404b1714a5d0d7629799fddcb83a2253.png

d57cbd56a4580014b9f7e9de883ddd09.jpeg


【Flutter应用】Flutter精仿抖音开源 总而言之,Android开发行业变化太快,作为技术人员就要保持终生学习的态度,让学习力成为核心竞争力,所谓“活到老学到老”只有不断的学习,不断的提升自己,才能跟紧行业的步伐,才能不被时代所淘汰。在这里我分享一份自己收录整理上述技术体系图相关的几十套腾讯、头条、阿里、美团等公司19年的面试题,把技术点整理成了视频和PDF(实际上比预期多花了不少精力),包含知识脉络 + 诸多细节,由于篇幅有限,这里以图片的形式给大家展示一部分。需要的朋友可以私信我【资料】或者点这里免费领取。 阅读详情

相关推荐

【Flutter应用】Flutter精仿抖音开源(1)

对于程序员来说,要学习的知识内容、技术有太多太多,要想不被环境淘汰就只有不断提升自己,从来都是我们去适应环境,而不是环境来适应我们!当你有了学习线路,学习哪些内容,也知道以后的路怎么走了,理论看多了总要实践的最后,互联网不存在所谓的寒冬,只是你没有努力罢了!《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!**

2401_84149505的博客 1240

盘点 12 个 GitHub 上的高仿项目

最近整理了现在比较热门 App 的高仿项目,这些项目都是有「recently updated」,而不是年代久远不再维护的项目。包括高仿微信、微博、B站、斗鱼、抖音、美团、头条、掘金等等。 这些项目涉及的技术栈有 Vue、Flutter 等等,看这些高仿项目的源码有什么用呢?比如下面这个高仿知乎,采用 Flutter 技术栈,把代码 Download 下来,看着代码做一遍基本可以入门 Flutter,学会 APP 布局。 高仿知乎 使用 Flutter 模仿的知乎黑色主题的 UI,在 我的页中可以修改.

sinat_30071601的博客 1025

最全软考高项工具技术总结(上)

第四版教材把工具和技术分为:数据收集技术、数据分析技术、数据表现技术、决策技术、沟通技巧、人际关系和团队技能、其他。我会按照上面的分类总结说明并标识他们用在哪些过程。小伙伴们可以通读理解做到有印象能选对应付上午选择,选几个深化用在下午论文的举例中。没必要背!

PM喵的窝 2045

【GitHub精选项目】抖音/ TikTok 视频下载:TikTokDownloader 操作指南

这个工具非常适合内容创作者和普通用户使用,因为它使他们能够轻松地保存重要的或有趣的内容,无论是用于个人回顾、好友分享、内容创作还是学术研究。总之,项目旨在为 TikTok 用户提供便捷的视频下载解决方案,帮助他们管理和享受 TikTok 上的优质内容。这个工具为用户提供了更多选择,以便更好地利用 TikTok 平台上的视频资源。

苟日新,日日新,又日新!!! 1万+

生信小白必看:手把手教你用R语言实现counts/FPKM/TPM互转(附代码)

本文为生信初学者详细讲解如何使用R语言实现counts、FPKM和TPM三种转录组表达量单位的精准转换,包含完整代码示例和常见问题解决方案。重点解析了FPKM与TPM的数学原理及转换方法,帮助读者掌握RNA-seq数据分析中的关键预处理步骤,提升差异表达分析的准确性。

weixin_27442001的博客 498

扬声器设计避坑指南:用Comsol分析反电动势对THD的影响(附案例文件)

本文深入探讨了扬声器设计中反电动势对总谐波失真的关键影响。通过COMSOL仿真,详细分析了BL值非线性、音圈电感变化等电磁-力-声耦合机制,并提供了从参数化建模到系统级优化的实战指南,帮助工程师精准量化并降低谐波失真,提升扬声器音质。

xx56789的博客 520

github短视频去除水印项目Douyin_TikTok_Download_API介绍

github地址:目前该项目在github 已有5.1k star,如下是作者写的项目介绍:「Douyin_TikTok_Download_API」是一个开箱即用的高性能异步抖音|TikTok|Bilibili数据爬取工具,支持API调用,在线批量解析及下载。该项目是基于 PyWebIO,FastAPI,AIOHTTP,快速异步的抖音/TikTok/Bilibili数据爬取工具,并通过Web端实现在线批量解析以及下载无水印视频或图集,数据爬取API,iOS快捷指令无水印下载等功能。

修己xj的博客 8324

单片机按键识别篇---单击---双击----长按

  最近做一任务需要使用一个按键实现三种功能,分别是按键单击功能,按键双击功能和按键长按功能,可能之前没有接触过这类按键复用情况,顶多也只是简单识别单击和长按,没有想过双击以上按键功能,也是绞尽脑汁,想了半天,又上网看了些例程,算是对于按键的识别有点小小的了解,感觉这个功能挺实用,在此做个随笔。 一、思路   1.识别长按操作思路:我们使用系统定时器定时,然后让系统每过一段时间去扫描按键I/O...

weixin_30311605的博客 3660

终极抖音下载神器:GitHub开源工具完整使用指南

想要轻松下载抖音无水印视频、批量保存用户主页作品,甚至录制直播内容吗?这款GitHub上开源的抖音下载器就是你需要的终极解决方案!本指南将详细介绍如何快速上手这款强大的抖音下载工具,让你轻松获取想要的抖音内容。 ## 🚀 快速入门:5分钟搞定抖音下载 这款抖音下载器基于Python开发,提供了完整的抖音内容下载功能。无论你是想下载单个视频、批量保存用户主页,还是需要录制直播内容,这个工具都能

gitblog_00902的博客 961

别再只看成交量了!用通达信这个VOL监测公式,一眼识别主力吸筹与出货信号

本文详细介绍了通达信VOL监测公式的实战应用,通过彩色量柱和换手率分层技术,帮助投资者识别主力吸筹与出货信号。该公式结合动态量能标准化和多周期均线组合,提供可视化主力行为图谱,提升交易决策的准确性。

weixin_28693447的博客 659

RK3568平台(USB篇)USB Gadget 驱动

USB 设备驱动,按照设备端关联的 USB 控制器 是工作在 主模式 还是 从模式,分为 USB 设备主机侧驱动 (主模式),或者 USB 设备从机侧驱动 (从模式)。同时,工作在 主模式 的 USB 控制器,称为 USB 主机控制器 (UHC: USB Host Controller),工作在 从模式 的 USB 控制器,称为 USB 设备控制器 (UDC: USB Device Controller)。有的 USB 控制器,只能工作在 主模式 或 从模式 中的某一种;

weixin_49303682的博客 1438

GitHub开源了一款程序员摸鱼神器!上班摸鱼还不会被老板发现。。。

点击上方“Github爱好者社区”,选择星标回复“资料”,获取小编整理的一份资料作者:GG哥来源:GitHub爱好者社区(github_shequ)这是GitHub爱好者社区第62篇...

GitHub爱好者社区 3176

【蓝凌表单】JSP组件常用语法整理

【代码】【蓝凌表单】JSP组件常用语法整理。

烧硬盘 708

开源版「抖音」,火了!

简单介绍一个 douyin 开源项目。douyin 是一个模仿抖音的移动端短视频开源项目,它基于 Vue、Vite实现。使用了最新的 Vue 全家桶技术栈,接口数据通过 axios-mock-adapter模拟。

2401_84206094的博客 1891

YOLOv8【第十三章:模型压缩与极致优化篇·第4节】LAMP 剪枝算法——无需超参的自动化剪枝策略!

🏆 本文收录于 《YOLOv8实战:从入门到深度优化》 专栏。该专栏系统复现并梳理全网各类 YOLOv8 改进与实战案例(当前已覆盖分类 / 检测 / 分割 / 追踪 / 关键点 / OBB 检测等方向),坚持持续更新 + 深度解析,质量分长期稳定在 97 分以上,可视为当前市面上 覆盖较全、更新较快、实战导向极强 的 YOLO 改进系列内容之一。

**My Coding Family** 5642

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

牛批牛批!GitHub开源仿抖音国际版,火爆全网!

点击上方“Github爱好者社区”,选择星标回复“资料”,获取小编整理的一份资料作者:GG哥来源:GitHub爱好者社区(github_shequ)这是GitHub爱好者社区第35篇...

GitHub爱好者社区 3372

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

GitHub上特殊版「某音」,火了!

今天就不聊太多了,简单介绍一个 douyin 开源项目。douyin 是一个模仿抖音的移动端短视频开源项目,它基于 Vue、Vite实现。使用了最新的 Vue 全家桶技术栈,接口数据通过 axios-mock-adapter模拟。项目地址:https://github.com/zyronon/douyin效果截图运行项目本项目是基于 Vue 开发的,需要 node 环境来运行。1、安装 NodeJ...

HollisChuang's Blog 789

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

7k star!开源版「抖音」,火了!

大家好,我是团长。今天介绍一个火爆了的github开源项目——douyin。先来看看这个项目的star数量增长曲线,短短一个月内关注度直线上升,已经达到7k啦。douyin-vue是一个模仿 抖音|TikTok 的移动端短视频项目,基于 Vue3、Vite5 、Pinia开发。数据保存在项目本地,通过 axios-mock-adapter 库拦截Api并返回本地json数据,模拟真实后端请求。项目...

Java团长的博客 625

基于GitHub开源项目“极简抖音后端”的常见问题解决方案

基于GitHub开源项目“极简抖音后端”的常见问题解决方案 项目基础介绍 本项目是基于GitHub的一个开源项目,项目地址为:极简抖音后端。该项目采用RPC框架(Kitex)和Hertz HTTP服务完成的第三届字节跳动青训营的实践项目,是一个后端服务项目,主要用于实现抖音App的核心功能。 主要编程语言 Go:项目主要使用Go语言开发,利用其高效的并发处理能力和简洁的语法特性构建微服务架构。 ...

gitblog_00393的博客 636

抖音直播下载终极指南:GitHub开源工具高级配置实战

你是否曾遇到过想要保存精彩抖音直播回放却无从下手的困境?面对直播回放无法直接下载、手动录制画质差、操作繁琐等问题,GitHub上的开源项目GitHub_Trending/do/douyin-downloader为你提供了一站式解决方案。本文将详细介绍如何利用该工具的高级功能轻松下载抖音直播回放,读完你将掌握从环境搭建到高级配置的全流程,实现直播内容的高效管理与批量下载。 ## 🚀 环境准备与快

gitblog_01055的博客 591
上一篇: 2024 年 Linux 发行版大对决:为什么我只选择Ubuntu
下一篇: 35个python实战项目,完整源代码!
编程IT圈
博客等级 码龄6年 1130粉丝 544原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值